Как стать автором
Обновить

Комментарии 11

А можно подробностей по задаче про палочки и шарниры? Видимо, я какой-то момент в условии упускаю. Ведь сказано, что «ребра ломаной могут пересекаться и накладываться».

Зачем вообще рассматривать тогда суммарные длины и почему не взять max(2l0, li)? Где l0 — первая палочка, li — все остальные.
1 3
ответ 4
Не 4, а 2. Но почему нельзя взять max(a0,ak/2,(-a0-a1-...-ak-1+ak)) (максимум считается по всем k > 0)? Где сломается эта формула?
А, вот в первом комментарии в этой ветке дан показательный пример. Понял свою ошибку, спасибо.

Последний элемент в формуле немного не понял. При ребрах 1, 3, 10, 1 что там получится? Я -13 насчитываю.
Ну и что, что -13. Тоже число, но оно максимумом быть не может. Там перебираются все k от 1 до n:
max(1,3/2,10/2,1/2,2,6,-13)=6
Похоже на правду. На сайте RCC доступны используемые для проверки решений тесты. Можно через них прогонять.

Вполне возможно, что решение алгоритмически верное, но упирается в ограничения. Насколько я понял, там в этом часто суть задачи: решить не в лоб, чтобы успеть/уместиться. С учетом того, что ограничения для всех языков одинаковые, выбор языка значительно влияет не только на процесс решения задачи, но и на результат.

Хотя проблем со скоростью разработки топовые участники не испытывают ни на чем. Пока ты читаешь условие одной задачи, они успевают решить две-три.
вот тут можно даже онлайн проверить: codeforces.ru/gym/100673

а вообще последнее решение похоже на правду
Действительно, все прекрасно с этим решением.
image
Не понял задачи совершенно аналогичным способом. Кстати max(2l0, li) / 2, мы радиус ищем
Чтобы ответ был Li/2, нужно, чтобы самая длинная палочка Li начиналась с точки на окружности (только тогда она сможет пройти по диаметру). Но если L0+L1+...+L{i-1}<Li/2, то начало Li неизбежно будет где-то внутри окружности, и её второй конец будет не ближе, чем Li-(L0+L1+...+L{i-1}) от центра.
А мне вот интересно, как связаны спортивное программирование и методы post/get на PHP? :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий