---> 45 задач <---
Источники
    Личные олимпиады(938 задач)
    Командные олимпиады(684 задач)
Страница: << 3 4 5 6 7 8 9 >> Отображать по:
ограничение по времени на тест
0.1 second;
ограничение по памяти на тест
64 megabytes

Даны натуральные числа a, b, c. Если уравнение ax+by=c имеет решения в целых числах, то выведите через пробел НОД(a,b), x и y (какое-нибудь решение). Если решения не существует, то выведите слово Impossible.

Входные данные

Входные данные - натуральные числа и не превышают по модулю 10000.

Выходные данные

Выведите ответ на задачу.

Примеры
Входные данные
1 2 3
Выходные данные
1 1 1
Входные данные
10 6 8
Выходные данные
2 2 -2
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Коля учится в третьем классе, сейчас они проходят простые дроби с натуральными числителем и знаменателем. Вчера на уроке Коля узнал, что дробь называется правильной, если ее числитель меньше знаменателя, и несократимой, если нет равной ей дроби с меньшими натуральными числителем и знаменателем.

Коля очень любит математику, поэтому дома он долго экспериментировал, придумывая и решая разные задачки с правильными несократимыми дробями. Одну из этих задач Коля предлагает решить вам с помощью компьютера.

Найдите наибольшую правильную несократимую дробь, у которой сумма числителя и знаменателя равна \(n\).

Входные данные

Во входном файле записано одно целое число \(n\) (\(3\le n\le 1000\)).

Выходные данные

Выведите в выходной файл числитель и знаменатель искомой дроби.

Примеры
Входные данные
10
Выходные данные
3 7
Входные данные
23
Выходные данные
11 12
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Андрей недавно начал изучать информатику. Одним из первых алгоритмов, который он изучил, был алгоритм Евклида для нахождения наибольшего общего делителя (НОД) двух чисел. Напомним, что наибольшим общим делителем двух чисел \(a\) и \(b\) называется наибольшее натуральное число \(x\), такое, что и число \(a\), и число \(b\) делится на него без остатка. Алгоритм Евклида заключается в следующем:

  1. Пусть \(a\), \(b\) – числа, НОД которых надо найти.
  2. Если \(b = 0\), то число \(a\) – искомый НОД.
  3. Если \(b > a\), то необходимо поменять местами числа \(a\) и \(b\).
  4. Присвоить числу \(a\) значение \(a - b\).
  5. Вернуться к шагу 2.

Андрей достаточно быстро освоил алгоритм Евклида и вычислил с его помощью много наибольших общих делителей. Поняв, что надо дальше совершенствоваться, ему пришла идея решить новую задачу. Пусть заданы числа \(a\), \(b\), \(c\) и \(d\). Требуется узнать, наступит ли в процессе реализации алгоритма Евклида для заданной пары чисел (\(a\), \(b\)) такой момент, когда перед исполнением шага 2 число \(a\) будет равно \(c\), а число \(b\) будет равно \(d\).

Требуется написать программу, которая решает эту задачу.

Входные данные

Первая строка входных данных содержит количество наборов входных данных \(K~(1 \le K \le 100)\). Далее идут описания этих наборов. Каждое описание состоит из двух строк. Первая из них содержит два целых числа: \(a\), \(b~(1 \le a, b \le 10^{18})\). Вторая строка – два целых числа: \(c, d~(1 \le c, d \le 10^{18})\).

Все числа в строках разделены пробелом.

Выходные данные

Для каждого набора входных данных выведите слово "YES", если в процессе применения алгоритма Евклида к паре чисел (\(a\), \(b\)) в какой-то момент получается пара (\(c\), \(d\)). В противном случае выведите слово "NO".

Система оценки

Тесты к данной задаче состоят из двух групп:

  1. \(1 \le K \le 5\), \(1 \le a, b, c, d \le 10^6\). Эта группа оценивается в 60 баллов.
  2. Дополнительных ограничений нет. Эта группа оценивается в 40 баллов.
ограничение по времени на тест
1.0 second;
ограничение по памяти на тест
64 megabytes

Для быстрого вычисления наибольшего общего делителя двух чисел используют алгоритм Евклида. Он построен на следующем соотношении: \(НОД(a, b)=НОД(b, a\bmod b)\).

Реализуйте рекурсивный алгоритм Евклида в виде функции gcd(a, b).

Входные данные

Вводится два целых числа.

Выходные данные

Выведите ответ на задачу.

Примеры
Входные данные
12
14
Выходные данные
2
Входные данные
256
48
Выходные данные
16
ограничение по времени на тест
2.0 second;
ограничение по памяти на тест
64 megabytes

Сегодня на уроке математики Петя и Вася изучали понятие арифметической прогрессии. Арифметической прогрессией с разностью d называется последовательность чисел a1, a2, …, ak, в которой разность между любыми двумя последовательными числами равна d. Например, последовательность 2, 5, 8, 11 является арифметической прогрессией с разностью 3.

После урока Петя и Вася придумали новую игру с числами. Игра проходит следующим образом.

В корзине находятся n фишек, на которых написаны различные целые числа a1, a2, …, an. По ходу игры игроки выкладывают фишки из корзины на стол. Петя и Вася делают ходы по очереди, первым ходит Петя. Ход состоит в том, что игрок берет одну фишку из корзины и выкладывает ее на стол. Игрок может сам решить, какую фишку взять. После этого он должен назвать целое число d ≥ 2 такое, что все числа на выбранных к данному моменту фишках являются членами некоторой арифметической прогрессии с разностью d, не обязательно последовательными. Например, если на столе выложены фишки с числами 2, 8 и 11, то можно назвать число 3, поскольку эти числа являются членами приведенной в начале условия арифметической прогрессии с разностью 3.

Игрок проигрывает, если он не может сделать ход из-за отсутствия фишек в корзине или из-за того, что добавление любой фишки из корзины на стол приводит к тому, что он не сможет подобрать соответствующее число d.

Например, если в корзине имеются числа 2, 3, 5 и 7, то Петя может выиграть. Для этого ему необходимо первым ходом выложить на стол число 3. После первого хода у него много вариантов назвать число d, например он может назвать d = 3. Теперь у Васи два варианта хода.

  1. Вася может вторым ходом выложить фишку с числом 5 и назвать d = 2. Тогда Петя выкладывает фишку с числом 7, называя d = 2. На столе оказываются фишки с числами 3, 5 и 7, а в корзине осталась только фишка с числом 2. Вася не может ее выложить, поскольку после этого он не сможет назвать корректное число d. В этом случае Вася проигрывает.
  2. Вася может вторым ходом выложить фишку с числом 7 и также назвать, например, d = 2. Тогда Петя выкладывает фишку с числом 5, называя также d = 2. Вася снова попадает в ситуацию, когда на столе оказываются фишки с числами 3, 5 и 7, а в корзине осталась только фишка с числом 2, и он также проигрывает.

Заметим, что любой другой первый ход Пети приводит к его проигрышу. Если он выкладывает число 2, то Вася отвечает числом 7, и Петя не может выложить ни одной фишки. Если Петя выкладывает фишку с числом 5 или 7, то Вася выкладывает фишку с числом 2, и у Пети также нет допустимого хода.

Требуется написать программу, которая по заданному количеству фишек n и числам на фишках a1, a2, …, an определяет, сможет ли Петя выиграть вне зависимости от действий Васи, и находит все возможные первые ходы Пети, ведущие к выигрышу.

Входные данные

Первая строка входного файла содержит целое число n (1 ≤ n ≤ 200).

Вторая строка содержит n различных целых чисел a1, a2, …, an (для всех i от 1 до n выполняется неравенство 1  ai  105). Соседние числа разделены ровно одним пробелом.

Выходные данные

Первая строка выходного файла должна содержать число k — количество различных первых ходов, которые может сделать Петя, чтобы выиграть. Если Вася может выиграть вне зависимости от действий Пети, строка должна содержать цифру 0.

Во второй строке должно содержаться k различных целых чисел — все выигрышные числа. Будем называть число выигрышным, если, выложив в качестве первого хода фишку, содержащую это число, Петя может выиграть вне зависимости от действий Васи. Соседние числа в строке должны быть разделены ровно одним пробелом.

Примечание

Первый пример рассматривается в тексте условия этой задачи.

Во втором примере, какую бы фишку не выложил Петя первым ходом, Вася в ответ выкладывает другую фишку, и Петя не может сделать ход из-за отсутствия фишек в корзине.

Примеры
Входные данные
4
2 3 5 7
Выходные данные
1
3
Входные данные
2
2 4
Выходные данные
0

Страница: << 3 4 5 6 7 8 9 >> Отображать по:
Выбрано
:
Отменить
|
Добавить в контест