Двоколісний візок#3309

Двоколісний візок

1 секунда
256 мегабайтів
Легка

Міжнародна автомобільна виробнича компанія (ICPC), один з найбільших виробників автомобілів у світі, розробляє новий транспортний засіб під назвою "Двоколісний Баггі". Як випливає з назви, цей транспортний засіб має лише два колеса. "Двоколісний Баггі" складається з двох коліс (лівого та правого) та осі (штанги, що з'єднує ці колеса). На рисунку нижче показано його базову структуру.

Рисунок 1: Базова структура баггі

Перед створенням прототипу цього транспортного засобу компанія вирішила провести комп'ютерну симуляцію. Деталі симуляції такі.

У симуляції баггі рухатиметься на площині x-y. Нехай буде відстанню від центру осі до коліс. На початку симуляції центр осі знаходиться в , ліве колесо — в (-D, 0), а праве колесо — в . Радіуси обох коліс дорівнюють .

Рисунок 2: Початкова позиція баггі

Рух баггі в симуляції контролюється послідовністю інструкцій. Кожна інструкція складається з трьох чисел: , та . та вказують швидкість обертання лівого та правого коліс відповідно, виражену в градусах за секунду. вказує, скільки секунд ці два колеса зберігають свою швидкість обертання. Якщо швидкість колеса позитивна, воно обертатиметься в напрямку, що змушує баггі рухатися вперед. Якщо швидкість негативна, воно обертатиметься в протилежному напрямку. Наприклад, якщо дорівнює , ліве колесо обертатиметься на градусів за секунду в напрямку, що змушує баггі рухатися назад. Ми можемо встановити та по-різному, що змусить баггі повертати ліворуч або праворуч. Зверніть увагу, що можна встановити одне з них позитивним, а інше негативним, у цьому випадку баггі обертатиметься навколо.

Рисунок 3: Приклади

Ваше завдання — написати програму, яка обчислює кінцеву позицію баггі, враховуючи послідовність інструкцій. Для простоти, ви можете припустити, що колеса не мають ширини і ніколи не ковзають.

Вхідні дані

Вхідні дані складаються з кількох наборів даних. Кожен набір даних форматований наступним чином.

Lspeed_1 Rspeed_1 time_1 ... Lspeed_i Rspeed_i time_i ... Lspeed_N Rspeed_N time_N

Перший рядок набору даних містить два додатні цілі числа, та (1 \le N \le 100, 1 \le D \le 10). вказує кількість інструкцій у наборі даних, а вказує відстань між центром осі та колесами. Наступні рядків описують послідовність інструкцій. -й рядок містить три цілі числа: Lspeed_i, Rspeed_i та time_i (-360 \le Lspeed_i, Rspeed_i \le 360, 1 \le time_i), що описують -ту інструкцію для баггі. Ви можете припустити, що сума time_i не перевищує .

Кінець вводу позначається рядком, що містить два нулі. Цей рядок не є частиною жодного набору даних і, отже, не повинен оброблятися.

Вихідні дані

Для кожного набору даних виведіть два рядки, що вказують кінцеву позицію центру осі. Перший рядок повинен містити -координату, а другий рядок — -координату. Абсолютна похибка повинна бути меншою або дорівнювати 10^{-3}. Жоден зайвий символ не повинен з'являтися у виході.

Приклади

Приклад 1

Loading
Loading