Сказка о том, что бывает, когда организаторы олимпиады забывают о золотом правиле разработки “Работает – не трогай” или “Хочешь сделать хорошо – сделай это сам”.

Ну и немного инсайдерской информации о том, как у нас в регионе это проходило и вполне могло бы проходить в любом другом регионе, у которого олимпиада проводится на чём то не особо крутом и поддерживаемом и когда ЦМК(Центральная методическая комиссия) меняет правила проведения соревнования.

Прелюдия

Где то в декабре нам абсолютно случайно попадает информация о том, что в этом году в олимпиаде меняется два достаточно существенных правила:

  • проверка заданий должна быть во время тура
  • проверка подзадач по правилам балл только за группу тестов.

Наша старушка-система конечно же не была в состоянии проводить мероприятие согласно этим правилам по двум причинам:

  • Ввиду обязательности проверки во время контеста на достаточно большом количестве тестов и при этом отсутствие в явном виде в системе возможности параллельной работы сразу нескольких воркеров(чекеров) на удалённых машинах мы обеспокоились пропускной способностью системы. 4 задачи * минимум 10 попыток * 20 участников * 1 минуту в худшем случае на проверку 1 человека. Итого 800 машино/минут надо было бы выдать за 5 часов. А чекер-то всего один и, как подсказывает математика, его производительность за 5 часов слегка недостаточна.

  • Новые правила проверки, выдача отчётов. Требуется переписывать и веб часть и сам чекер для удалённой машины. В общем, очень старая система на Perl с файликами в качестве базы данных и очереди проверки. Допиливать её без опыта работы с Perl-ом и без написания тестов на новый функционал – удовольствие ниже среднего.

Общий центр проверки

Но слава богу, ЦМК обещал предоставить для регионов общий центр проверки решений на базе Я.Контеста. Казалось бы, записывайся на работу с ним и проблем нет. Но тут начинаются бюрократические трения об местных организаторов, которые не особо хотят нам выдать документ со всеми подписями и печатями, предоставляющий нашему председателю жюри права координатора. Они решают это обсудить. В этот момент мои нервы не выдерживают и я на всякий случай начинаю писать новую версию проверяющей системы. Времени то было ещё достаточно. В конечном итоге, перед самым Новым Годом нам вроде как дают добро и мы получаем возможность официально работать с «Я.Контестом». В результате, мы решаем использовать «Я.Контест» как основной вариант, как запасной вариант я продолжаю писать свою. Проходят новогодние каникулы. По своим убеждениям на eJudge мы посматриваем с опаской(и, видимо, не зря) – слишком много «ручек» и нюансов его работы.

И тут запахло жареным

На первой неделе после выходных дней мы отсылаем заявку в «Я.Контест» и начинаем ждать ответа. Ответа не приходит до 16 января. Мои нервы не выдерживают опять и я пишу в личку «ВКонтакте» представителю проверяющего центра с просьбой хоть как то обработать нашу заявку. Вечером этого дня нам отвечают. Наш координатор получает письмо с инструкциями, мы радостно тестим пробный тур, пишем пару сообщений жюри через интерфейс (не ляжет ли веб морда и какова оценка по длине очереди проверки, если много регионов решат переложить проверку на «Я.Контест»; смогут ли жюри смотреть сабмиты своих подопечных и сами потыкать систему до и во время туров) и на эти сообщения вообще почти не отвечают. Пятая точка начинает пригорать от такого расклада перед самой олимпиадой и в авральном режиме начинается поиск запасного варианта. Я уже выхожу на работу и не успеваю дописать свою, председатель жюри каким то чудом допиливает старую систему на перле под новую проверку буквально за пару дней до мероприятия, для добавления ещё одного воркера просто разводим участников на два разных сайта. Параллельно с этим как обычно мы ещё должны подготовить рабочие места, прорешать задачи и т.п. В общем, экшена было «выше крыши».

Итог

Так как «Я.Контест» продолжает игнорировать наши вопросы и пароли к нам приходят чуть ли не в день пробного тура, мы, офигевшие от такого уровня сервиса, решаем отказаться от использования «Я.Контеста» и проводим олимпиаду на том, что было. Все проходит нормально. В результате, участники получают практически отсутствие очередей проверки при полном соблюдении правил олимпиады. Разбор пишется мною наперегонки с участниками уже прямо во время тура. Вот такие чудеса бывают 😄

Боюсь представить, что могло бы произойти в регионе в аналогичных условиях, если бы там вообще могло не оказаться людей, которые могли бы подпилить свою legacy систему или не было бы на это времени. UPD: А вот и пример появился.

Извините за много эмоций, но это была самая нервотрёпная областная олимпиада за 5 лет моего участия в её орг. комитете.

Разбор задач II тура: 1-3 задачи, 4-ая задача.