Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Костанян О.Г 6109г.(Задачи Тимуса).docx
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
31.7 Кб
Скачать

7) 1349. Ферма:

Стоит себе ферма. На ферме сидит фермер и считает, сколько кого есть у него на ферме - a верблюдов, b баранов, с зеленых тараканов. Почему-то an + bn = cn. Известно n. Найти все остальное.

Три различных целых числа (а, b, c) таких, что аn + bn = cn, 1 ≤ a, b, c ≤ 100. Если решений несколько, вывести то, где a минимально. Если и таких несколько, вывести то, где минимально b и т.д. Вывести −1, если решения нет.

Идея решения:

По великой теореме Ферма при значениях n > 2 уравнения вида xn + yn = zn не имеют ненулевых решений в натуральных числах. Поэтому наша задача просто при вводе 1 и 2 выдавать соответственно 1, 2, 3 и 3,4,5

Решение:

var a,b,c,n:integer;

begin

readln(n);

if n=1 then

writeln('1 2 3')

else if n=2 then

write('3 4 5')

else write('-1')

end.

------------------------------------------------------------------------------------------------------------------------------------------

8) 1194 . Рукопожатия

После вечеринки в трактире «Гарцующий пони» хоббиты расходились по домам. На первом перекрёстке вся компания разделилась на несколько групп, каждая из которых пошла своей дорогой. Разумеется, соблюдая правила хорошего тона, хоббиты перед расставанием обменялись рукопожатиями (каждый хоббит пожал руку каждому, с которым он расставался, вне зависимости от пола). Каждая группа, дойдя до следующего перекрёстка, в свою очередь разделилась на меньшие группы, также обменявшись рукопожатиями. Этот процесс продолжался до тех пор, пока все холостые хоббиты и супружеские пары не разошлись по домам. Другими словами, группы разбивались до тех пор, пока не осталось ни одной группы из трёх и более хоббитов. Ваша задача — подсчитать количество сделанных рукопожатий.

Пронумеруем группы хоббитов так, что первая (та, которая вышла из трактира) получит номер 1, а все остальные — различные последовательные номера от 2 и далее. В первой строке записаны два числа N и K — общее количество хоббитов, вышедших из трактира и количество супружеских пар. Эти числа удовлетворяют ограничениям: 2 < N ≤ 20000; 0 ≤ 2KN. В каждой следующей строке записан номер группы, затем — количество групп, на которые она разбивается, потом идут пары чисел, разделенные пробелами — номер и численность каждой новой группы. Гарантируется, что если группа Y получилась в результате разбиения группы X, то описание разбиения группы X будет раньше описания разбиения группы Y. Это, в частности, означает, что описание группы 1 расположено во второй строке. Если группа Y получилась в результате разбиения группы X, но её описания не последовало, — это означает, что группа Y больше не разбивалась.

Выведите количество сделанных рукопожатий.

Идея решения:

Подсчитать количество сделанных рукопожатий можно с помощью теоремы «о выборе двух элементов без учёта их порядка». И не забудем вычесть k супружеских пар, т.к они не прощаются.

Теорема: Если множество состоит из n элементов и требуется выбрать два элемента без учёта их порядка, то такой выбор можно произвести (n(n-1)/2) способами.

Решение:

Var n,k: Integer;

S:Real;

begin

readln (n,k);

s:=(n*(n-1)/2)-k ;

write(s:0:0);

end.