Задача:
Монстр гонится за Риком и Морти на другой планете. Они настолько напуганы, что иногда кричат. Точнее, Рик кричит в моменты времени b, b+a, b+2a, b+3a,…, а Морти кричит в моменты времени d, d+c, d+2c, d+3c,….
Монстр поймает их, если в какой-то момент времени они закричат одновременно. Так что он хочет знать, когда он поймает их (первый момент времени, когда они закричат одновременно) или они никогда не закричат одновременно.
Ввод:
Первая строка входных данных содержит два целых числа a и b (1≤a, b≤100).
Вторая строка входных данных содержит два целых числа c и d (1≤c, d≤100).
Вывод:
Выведите первый момент времени, когда Рик и Морти закричат одновременно, или - 1, если они никогда не закричат одновременно.
Тесты:
Ввод
|
Вывод |
20 2 9 19 |
82 |
2 1 16 12 |
-1 |
Код:
Решение:
В этих моментах времени, заданных прогрессиями, изменяется только коэффициент при a и c. Создадим для них 2 цикла. Так как равных моментов времени может быть много, а нам нужен только первый, создаем вектор и ,когда моменты равны, добавляем в него этот момент. Затем, уже вне цикла, проверяем пустой ли вектор, и в таком случаем выводим -1, так как моменты на данном промежутке не были равны ни разу. Если же вектор непустой, выходим первый элемент вектора. Он и будет искомым первым одновременным криком.
Версия программы на Ideone.com