Optimist's blog

By Optimist, 11 years ago, In Russian

Две недели назад завершилась уже вторая олимпиада от паблика "Типичный программист". Две недели назад мы приняли решение написать этот пост, но решили подождать (чего — читайте ниже).

И вот сейчас, когда температура стульев вновь повысилась, мы с чистой совестью приступили к выполнению обещания.

Для желающих есть ссылки на условия задач и разбор.

Разумеется, от этой олимпиады мы вряд ли ждали многого, как и от многих других олимпиад по программированию, в сообществе которых не видно знакомых лиц и не слышно знакомых слов. Опасаться стоило прежде всего некачественных задач и нетрадиционных способов проверки решений. Однако те, кому повезло участвовать в прошлом году, хоть были не очень довольны организацией контеста в целом, но об условиях задач отзывались более-менее положительно. В качестве тестирующей системы использовался ejudge.

Почему же всё-таки в этом хотелось поучаствовать? Наверное, во многом из-за желания посмотреть, как может выглядеть большая олимпиада, организованная без помощи специализированной платформы (будь то Codeforces, Яндекс.Контест или другие) и обслуживающих эту платформу людей. Кроме того, обещали призы и подарки. Наконец, учитывая предполагаемую аудиторию мероприятия, не хотелось терять шанс показать "обычным программистам" (которых в последние годы часто рассматривают почти как антагонистов "спортивных программистов"), каково это — находиться на нашем "поле боя".

Сразу следует сказать, что у олимпиады были сильные стороны — прежде всего это набор задач про Brainfuck, в одной из которых требовалось написать интерпретатор этого языка, а в нескольких других — простые программы на нём. Решение первой задачи можно было дебужить решениями других задач, и это было очень интересно и здорово. Было видно, что жюри по мере своих сил старается решать возникающие технические проблемы, информировать о состоянии дел через паблик.

Но, всё-таки, чем же нам действительно запомнится это соревнование?

1) Да, разумеется, ПРОСТОЯМИ. В течение первого дня олимпиады ожидание вердикта по решениям могло занимать более часа, размер очереди проверяемых посылок мог достигать шести сотен.

> лол, в прошлом году очередь была около 1400 в свои лучшие времена, интересно, в этом так получится?)

- Андрей из скайпа

К ночи серверы таки ускорили, но неповторимый осадок остался. Резонный вопрос — можно ли было организовать какое-то подобие пробного тура и заранее узнать, что серверы не потянут? Тем более, что опыт прошлого года также подводил к этому решению.

2) Сразу после простоев идёт специфичная система ранжирования: при одинаковом количестве баллов и попыток выше находится тот участник, который имеет меньшее время между первым и последним решением. Казалось бы, в свете первого пункта такая система вообще не жизнеспособна. Осторожный участник, не уверенный до конца в своём решении, в течение первого дня был вынужден ждать вердикта, накапливая таким образом временной штраф. В таких условиях, наверное, больше подошла бы система оценки времени наподобие ICPC. Окей, всё же можно допустить, что авторы не предполагали такой беды с серверами, а исправлять метрику ранжирования на ходу не было возможности. Но…

3) В итоге контест выигрывает человек с разницей в 3 секунды между посылками. Разумеется, вполне можно было решить всё заранее и потом отослать решения по всем задачам вместе; вряд ли кто-то сможет обвинить топовых участников в том, что они использовали какую-то другую стратегию. Но, тем не менее, нельзя отрицать, что первые два пункта в совокупности породили отличное поле для недобросовестного поведения участников. В погоне за призами, особенно ближе к концу соревнования, количество новых участников, внезапно сдающих всё за минуты с первой попытки (при наличии в проблемсете минимум двух сложных задач с “подводными камнями”, где можно было получить неполный балл), росло темпами, несовместимыми со здравым смыслом. В итоговой таблице было более сотни полных решений, десятки — одним-двумя брёвнами по всем 14 задачам.

4) Наконец, пункт, из-за которого этот пост появился на свет только сейчас, так как надежда ещё теплилась. Обещания проверки решений на плагиат. Очевидно, что в сложившейся ситуации она была очень и очень важна. Ближе к концу соревнования организаторы стали запугивать недобросовестных участников страшными карами и предлагать сдаться с повинной, дабы сохранить часть баллов (что, вообще говоря, само по себе странно, так как за неспортивное поведение в приличных домах банят). В турнирной таблице даже появились пометки читерских попыток, правда, все они красовались на одном-единственном участнике до самого конца контеста. В итоге, к сожалению, ощутимых изменений от пристальной проверки решений, занявшей две дополнительных недели (ДВЕ НЕДЕЛИ, КАРЛ), так и не оказалось (по словам организаторов, дисквалифицирован был один участник). Топ турнирной таблицы сохранил своё неповторимое великолепие.

Et cetera. Надо бы упомянуть несколько мелких, но запомнившихся особенностей, как то:

  • нерасторопность жюри в ответах на клары (наверное, из-за того, что клар было много),

  • недочёты в интерпретаторе брейнфака, вылившиеся в ночной реджадж (получается, весь день минимум 3 задачи могли получать неполное количество баллов, что в дальнейшем повлекло ещё большую путаницу в результатах),

  • общее качество задач, которое на удивление соответствовало ожидаемому:

Тимур, а вот интересно, кто-нибудь перед отправкой хоть немного тестил, или все просто понимали "ага, ну очевидно, что в этой задаче невероятно слабые тесты, поэтому отправлю-ка я треш"? :)

- https://vk.com/tproger_olymp?w=wall-67845382_4562

Nuff said.

Что же остаётся в итоге? При всех недостатках, мы не можем забывать про важность таких олимпиад для популяризации олимпиадного программирования. И организаторы, и спонсоры проделали большую работу. Но было бы ещё лучше, если бы недостатки со временем исправлялись, метрики улучшались, задачи дорабатывались напильником. В текущей же ситуации получилось так, что из-за упомянутых багов у многих участников сложилось скорее негативное представление об олимпиадном программировании, а это наверняка совсем не то, к чему стремились организаторы.

Видимо, сам этот пост — наше средство создать обсуждение олимпиады, оставить напоминание её создателям, что их работу видят в большом олимпиадном сообществе.

Участвовали ли в этой олимпиаде вы? Чем она вам запомнилась? Что вы можете про неё рассказать?

Всегда ваши, синие да зелёные из Ульяновска. Писали все вместе, правда.

  • Vote: I like it
  • +148
  • Vote: I do not like it