Кидання камінців по воді#3026

Кидання камінців по воді

1 секунда
64 мегабайти
Легка

Як учасник Міжнародної ліги стрибання камінців, ви щотижня подорожуєте до нового озера та змагаєтеся у конкурсі зі стрибання камінців. Мета — підкинути камінець так, щоб він зробив якомога більше стрибків; точні правила визначення переможця наведені нижче. Щоб зробити змагання цікавішими, організатори IRSL часто обирають озера з колодами, піщаними мілинами та іншими перешкодами. Вам надано "карту" озера в профіль на рівні води, як показано у верхньому рядку прикладу нижче. (Числа під картою — лише для довідки.) Крапка (".") позначає чисту воду, де камінець може підскочити; будь-який інший символ означає певну перешкоду, яка зупинить камінець.

...=...**..#...@....:.:.:..=..    ______________________________              11111111112222222222    012345678901234567890123456789 \

Ви стоїте на лівому краю озера. Ви можете підкинути камінець так, щоб він приземлився в будь-якій позиції на озері, а потім стрибав з фіксованим інтервалом. Таким чином, кидок визначається як пара , де i \geq 0 — початкова позиція приземлення, а d > 0 — відстань між стрибками. Зауважте, що має бути додатнім. Величина кидка — це кількість разів, коли камінець підскакував по воді. Довжина — це позиція останнього контакту з водою або перешкодою. Щоб порівняти два різних кидки, використовуйте такі критерії по черзі, доки не визначиться переможець: кількість стрибків (більше — краще); довжина (більше — краще); початкова позиція (більше — краще); інтервал між стрибками (менше — краще).

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

Приклади

Приклад 1

Loading
Loading