`
Задача Billiards. Більярдний стіл має форму прямокутника mхn. У точку з координатами (0,0) поклали кулю та вдарили по ній так , що вона покотилася під кутом a до додатного напрямку осі оХ. У кутах з координатами (0,0),(0,n),(m,0),(m,n) знаходяться лузи. Знайти, після скількох відбивань від стінок куля опиниться в одній із луз або повідомити про те, що це не відбудеться. Всі удари об стінки вважаються абсолютно пружними. Вважається, що в момент удару куля не може впасти в лузу в точці (0,0).
Технічні умови Програма Billiards читає з пристрою стандартного вводу 4 натуральних числа m,n,p,q – розміри дошки та тангенс кута a(tga=p/q). Кожне з чисел не перевищує 1018. Програма виводить на пристрій стандартного виведення єдине число – кількість відбивань до потрапляння у лузу або -1 , якщо кулька ніколи туди не потрапить. Гарантується, що якщо відповідь існує, то вона не перевищує 1018.
Приклади
Введення 1 1 1 1
Виведення 0
Введення 4 2 1 1
Виведення 1
Пояснення до прикладів. У першому прикладі куля відразу потрапить до лузи в точці (1,1). У другому прикладі куля відіб’ється від верхньої стінки і потрапить у лузу в точці (4,0).
© LIKT 1998-2024