November 28, 2022

Как мы на RuCode 6.0 ходили

27 ноября 2022 года состоялся чемпионат по алгоритмическому программированию RuCode 6.0. На него смело отправились трое завсегдатаев лампового чатика: Женя, Паша и Катя. Они выбрали дивизион C-D, наивно полагая, что он для самых нубов, но жестоко просчитались. Держите true story от первого лица.

В 9:50 по мск потенциальные участники онлайн-контеста столкнулись с проблемой — сайт организатора мероприятия прилёг «отдохнуть» и не вставал примерно до 10:30. Когда мониторы перестали показывать статусы 404 и 504, мы, наконец, смогли посмотреть на задачи — всего их было 13.

Кстати, все задачи с чемпионата можно найти в конце этого поста ;)

Заботливо «не стырили, а форкнули» для вас

Особенность заданий состоит в том, что каждое содержит ограничения: по времени — 2 сек, по памяти — 512 Мб и по вводу/выводу — стандартный ввод/вывод или input.txt/output.txt. Также даны 2-4 примера ввода/вывода, по которым можно проверить работу своей программы. Где-то в закромах спрятаны глобальные тесты — и вот с ними возникла главная проблема всего чемпионата — если ваша программа не проходит какой-то тест, вы не можете посмотреть, какой именно, что он содержит, чтобы иметь возможность хоть что-то исправить.

Первая задача была решена успешно и относительно быстро, а вот вторую «влоб» не пропустило ограничение по времени (да, там был цикл for и оооооочень большое число). Мы вспомнили умное слово «комбинаторика» и пошли гуглить, как её выучить за полчаса. Решение вроде как было найдено — ответ крылся в логарифмах (как нам казалось и до сих пор кажется), три теста программа проходила успешно, но на глобальных валилась нещадно. Что этой заразе не понравилось, мы так и не поняли. «Вердикт: wrong-answer» без каких-либо пояснений больше бесил, нежели подстёгивал искать истину, поэтому мы двинули дальше.

Так как цель у нас была не выиграть любой ценой, а приятно провести 5 свободных часов воскресенья и посмотреть, что из себя представляют подобные мероприятия, мы решили отложить на потом (которое так и не наступило) задачи с припиской «Это интерактивная задача».

Штурм задачи про треугольники и их длины сопровождался охами, ахами, конским ржачем («РАБОТАЕТ!!! IMPOSSIBLE!») и иногда криками. Потому что времени оставалось 20 минут, и мы бесились с тестов как могли. А ещё было обидно, что мы вспомнили всю математику за 8-9 классы, но так и не могли понять, что же такого было в этом тесте 3, что он оказался непроходим.

После чемпионата, говорят, традиционно проходит разбор всех задачек. Если у нас не будет жёстких вьетнамских флешбеков, мы его посмотрим (и с вами поделимся). А ещё мы узнали (уже после всех мучений с тестами), что в дивизионе C-D задачи повышенной сложности. В чём это выражается, мы не поняли (в тестах!!!), потому что сравнить не с чем, но ЧСВ это самую малость поднимает. Нас оправдывает то, что информации от организаторов было чуть больше, чем нифига, поэтому тыкались мы как котятки в молоко — мимо мисочки.

Итог

  1. Это не так стрессово, как могло бы показаться, если с тобой дрим-тим (и ты не намерен прорываться к вершинам чарта).
  2. Мы в жопе, но не слишком глубоко (184-е место из 193-х — это успех).
  3. МФТИ, открой людям тесты!!!
  4. От души поздравляем команду «Выгнали из МИРЭА» со вторым, кажется, местом в дивизионе — нейминг в самое сердечко.

Пойдем ли мы ещё? Абсолютно точно да! Но сначала выучим алгоритмы. И комбинаторику.

Задачки

A. Ascari's Record

B. Big Integer And One Operation

C. Chess Pieces Placement

D. Discount

E. Effective Transmission

F. Fix The Triangle

G. Guess The Permutation

H. Hidden Graph

I. IVXLDCM-strings

J. Jewels of Ice and Fire

K. K-Colored DAG

L. Least Divisor

M. Memory Test

PythonTalk в Telegram Чат канала в Telegram

Автор: Екатерина Прохорова