Уважаемые люди, помогите решить эту задачу http://mirror.codeforces.com/gym/101181/problem/D у меня 68-ом тесте ошибка. 68 ошибкаhttp://mirror.codeforces.com/gym/101181/submission/22695394 заранье спасибо!!!
UPD: AC 26-попытки!! очень интересная задачка, спасибо за автору.
Автокомментарий: текст был обновлен пользователем xsc (предыдущая версия, новая версия, сравнить).
Можешь пожалуйста объяснить как она решается?
Решай сам. Алгоритм пересечения отрезков есть на е-максе. Зная его, найти расстояние, на которое нужно сдвинуть верхнюю ломаную, чтобы она соприкоснулась с нижней — совсем не rocket science. Посчитать количество точек касания — тоже. Разобрать вырожденный случай, когда ломаные касаются друг друга отрезками — это уже совсем упражнение на технику.
Главный не использовать double/float . вместо их использовал дробное число, структура 'ret'. А остальные очень легко, надо найти для всех из нижный и верхный точек расстояние из этого точка до противоположнего сторону озера. Взять минимум из них — это будет расстояние когда береги озера сопрекаснется. А чтобы вычислет количество надо учесть что некоторые отрезки противоположнего берега может целоком сопрекаснется.