Программисты в деле

Более 300 студентов и школьников «ломали злые задачи» в четвертьфинале чемпионата мира по программированию, который состоялся на базе ИКИТ в конце октября. И некоторые были так успешны, что стали метить не только в полуфинал, но и в финал, а он, между прочим, пройдёт в Марокко!

Четвертьфинальные соревнования чемпионата мира по программированию в СФУ проводят с 1998 года. Параллельно с ними идёт полуфинал олимпиады школьников по программированию. Братья Денис и Андрей ЦВЕТЦИХ сначала сами принимали участие, а теперь уже много лет составляют задачи для олимпиад. В этом году они потрудились на славу и очень довольны результатами. Например, удалось привлечь почти 150 школьников, что в два раза больше, чем обычно. А студентов натренировать так, что уже не одна-две, а три-четыре команды решают большую часть заданий. (Все десять решают уже несколько лет только «Бизоны» — команда Института математики и фундаментальной информатики. Так что интриги нет — они победили и в этом году). В студенческих состязаниях приняли участие 18 команд из Красноярска, Абакана, Иркутска, Улан-Удэ и других городов.

Формат соревнований таков. В команде три участника, на всех — один компьютер. После решения задачи ребята посылают ответ на проверку, он проходит огромное количество тестов, а также просматривается членами жюри. Алгоритм решения может отличаться, но итоговые данные должны совпадать. На некоторых задачах решению нужно пройти более 4000 тестов, и бывало, что на 4201 тесте задача не проходила отбор. Всё это, однако, осуществляется очень быстро — через минуту участники уже знают, верен их ответ или нет.

— Под первым номером скрывалась лёгкая задача, — рассказывает Денис, — мы специально сделали так, чтобы её могли решить как можно больше участников. Первая посылка с правильным решением пришла от Иркутского государственного университета путей сообщения — то есть от непрофильного вуза. Была практика, когда сложную первую задачу решали по 4 часа, не двигаясь дальше, и в итоге не получали ни одного верного решения.

Третья задача получила прозвище «злой», поскольку решали её по 14-17 раз! Это действительно очень много. А всё потому, что команда «Бизоны» быстро реализовала эффективное, но не очевидное решение, тем самым создав иллюзию, что задача простая. А это было не так. Другую задачу, под номером 10, студенты почему-то откладывали, хотя она была простейшей, технической, условия взяты из жизни.

Олимпиадные задачи вообще часто представляют собой небольшой рассказ с героями и конфликтом. Например, как при переезде расставить столы, чтобы угодить всем сотрудникам, но при этом учитывать и то, что в комнате уже стоят шкафы. Ребята признавались, что задача казалась им слишком лёгкой. В итоге за полчаса до окончания времени её решили лишь две команды. Заставили поволноваться воспитанники — команда из ИКИТ. Они неверно распределили силы, потратив много энергии и времени на сложную задачу, которую сломали только с пятой попытки. И потом снова взялись за сложную! В итоге до заморозки времени — за час до окончания олимпиады, когда результаты больше не оглашаются — они даже близко не попадали в число призёров. А потом решили три задачи и стали вторыми.

— Для школьников же вообще сделали задания чуть легче, чем в прошлом году, — признаётся Андрей. — По опыту прошлых лет мы видели, что ребята могут не до конца решать задания и уходить раньше времени. А теперь им было чуть легче, и до конца досидели все. Это не повлияет на общий уровень подготовки сильных команд, которые, к слову, участвовали вне конкурса и в студенческой олимпиаде и заняли 5 место. Но зато даёт более слабым командам возможность поверить в свои силы и подтянуться к следующему году. Во время олимпиады за каждую правильно решённую задачу участники получают воздушные шарики и могут таким образом следить, кто как продвигается. Хочется отметить
и поблагодарить за работу Сергея Николаевича БЕЛЯЕВА, тренера из Дворца пионеров и школьников, который принимал участие в подготовке олимпиадных заданий для школьников, а также сделал подробный разбор-анализ заданий после олимпиады. На разбор пришли все без исключения, отчасти потому, что было интересно узнать решения, а отчасти из-за того, что там кормили сладкой ватой — и школьники, и студенты были от этого в восторге (смеётся). Разбор у студентов они делали сами — те, кто верно решил ту или иную задачу. Прошёл он тоже очень динамично и продуктивно. Кроме того, мы наградили участников в специальных номинациях «За самую сложную задачу» и «За борьбу до последних минут».

На фото «смешаны» две команды победителей  (участники занявшей первое место команды ИМиФИ являются тренерами школьной команды,  которая также заняла первое место :)

На фото «смешаны» две команды победителей (участники занявшей первое место команды ИМиФИ являются тренерами школьной команды, которая также заняла первое место :)

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

Благодаря рекордному количеству участников на полуфинале школьной олимпиады, для нашего региона увеличили квоту: вместо 8 школьных команд на финал поедет 12.

Из красноярских команд до последнего этапа ещё не доходил никто. В прошлом году как никогда близко подошли к воплощению своей мечты «Бизоны». Они и команда из Новосибирска решили одинаковое количество задач в полуфинале, но новосибирцы сделали это на несколько минут быстрее, тем самым вырвав себе путёвку в финал. Ребята не стали отчаиваться, а продолжили тренироваться, ещё и в подопечные себе взяли команду школьников, которые в этом году одержали победу в своей олимпиаде (команда тренинг-центра «Профит», старший тренер, выпускник СФУ Михаил КОРМЫШОВ). Поэтому в нынешнем году у команды ИМиФИ есть все шансы на победу в полуфинале. Сейчас они учатся в магистратуре, и на следующий год их ждёт последняя олимпиада среди студентов. Пожелаем им удачи и будем изо всех сил болеть за наши команды!

Организаторы благодарят партнёров и спонсоров, которые в этом году составили большой призовой фонд: победители обоих соревнований получили подарочные сертификаты от туристического агентства на поездки по России, призёры — беспроводные наушники, читалки и «умные» часы. Большинство компаний-спонсоров имеет в своём штате сотрудников — бывших участников олимпиад по программированию.

Роман МАГДЕНКО, участник команды-победителя «Бизоны»:

— Подготовка к олимпиаде идёт полным ходом. В конце лета мы побывали на самых крутых сборах по олимпиадному программированию, которые проходят в Петрозаводске, затем после небольшого отдыха продолжили свои тренировки: два командных контеста в неделю и личные олимпиады и дорешивания. На четвертьфинале волнения меньше, но оно всё равно есть. Мы понимаем, что у команд из нашего региона меньше опыта, но на олимпиаде может всякое случиться. Например, два года назад наша команда не смогла сдать ни одну задачу с первой попытки, проигрывала даже второй команде из своего института и только за минуту до окончания сдала победную задачу. Правда, состав команды был немного другой.

Мне нравится решать задачи, соревноваться и общаться с другими участниками. Плюс некоторые IT-компании следят за участниками олимпиад и приглашают некоторых к себе на работу. В команде общаемся хорошо. Любим подколоть друг друга, что способствует снятию напряжённости на контесте. Есть и разделение труда. Вначале я вбиваю шаблон, в это время Сашка с Виталей ищут лёгкие задачи. Затем решаем задачи самостоятельно, если возникают вопросы, то советуемся друг с другом. С тренером общаемся хорошо. К сожалению, с того момента, как поступили в институт, ему редко удаётся присутствовать на тренировках. Но он всячески помогает в решении задач, которые не дались нам на контестах, указывает на ошибки в командной работе. Трудно описать ощущения от победы. Это радость, восторг. Всегда приятно хоть как-то помочь своей команде.

Мне нравится преподавать, рассказывать школьникам то, чего они раньше не знали. Это даёт некоторый опыт. Например, лучше начинаешь понимать некоторые алгоритмы, учишься придумывать контрпримеры к неправильным решениям. Хочется поднять уровень олимпиадного программирования в нашем регионе. Став тренером, я невольно понял, как нелегко им быть. Особенно когда на олимпиаде перед тобой лежит комплект заданий, и ты не знаешь, почему твои команды не сдают ту или иную задачу. Но несмотря на это и на всю ответственность, скучно точно не будет!

Настрой на полуфинал у нас боевой, но волнение, конечно, присутствует. Мы понимаем, что многие ждут от нас выхода в финал. Поэтому будем стараться!

Анастасия АНДРОНОВА