Andrey Kostyagin
Я впервые участвовал и сделал вывод про себя, что РАИК - это про борьбу с внутренним перфекционизмом. Это про скорость без багов, т.е. спортивное программирование с очень небольшой добавкой промышленного программирования (код надо понимать не 2 часа, а 20 дней, но это не сильно отличается, если все 20 дней с ним живёшь). А архитектура - не нужна, не окупается. У тебя все 20 дней в голове прочные структуры, которые удерживают архитектуру, нет необходимости выражать это в коде (некому передавать, даже себе в будущем не надо, все 20 дней - это здесь и сейчас). И гибкость. Это когда видишь красивое вкусное алгоритмичное решение, а нужно смотреть игры и делать быстро 5 костылей вместо этого. А потом ещё 5, чтобы не снесло вниз конкурентами, и ещё, и ещё. Это вообще больно промышленному программисту или архитектору. Но очень полезная практика гибкости. Именно в этой задаче это было сильно заметно. И ещё задачи мало выходили за пределы простых олимпиадных алгоритмов, даже специалист в этой области GreenTea проиграл тем, кто спортсмен и много разнообразных эвристик фигачил. Очень хотелось бы уже почитать статьи, конечно. Для себя сделал выводы быть более гибким и искать простые грязные быстрые эффективные улучшения, меньше думать об архитектуре. У меня тоже по неопытности и по привычке было немало размышлений об архитектуре, и в конце концов пришёл к тому, что никакие паттерны не нужны, кроме декомпозиции (ну разве что словарик usedEntities между подсистемами передавать, если это можно назвать паттерном), да и то необязательно, потому что декомпозиция 20 дней в голове, и этого достаточно.
Алгоримты олимпиадные не так часто используются в раике, тут больше про эвристики. Есть места где возможно использовать что-то из олимпиадного, но редко.