Положение о четвертьфинальных соревнованиях студенческого чемпионата мира по программированию

1. Цели и задачи

1.1 Основными целями проведения четвертьфинальных соревнований являются апробация учебно-методического и программного обеспечения для реализации соревновательного подхода к обучению студентов в рамках студенческого чемпионата мира по программированию; повышение качества подготовки специалистов в области информационных технологий, развитие знаний и умений студентов вузов по ключевым направлениям профессиональной деятельности, выявление интереса к научно-исследовательской деятельности; отбор студенческих команд для участия в полуфинальных соревнованиях.

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

1.3 Чемпионат проходит в несколько этапов. В чемпионате участвуют команды студентов высших учебных заведений. На первом этапе команды участвуют в четвертьфинальных соревнованиях. В них участвуют команды вузов Сибирского и Дальневосточного подрегионов Северо-Восточного Европейского региона студенческого чемпионата мира по программированию. Лучшие команды четвертьфинальных соревнований участвуют в полуфинальных соревнованиях.

1.4 Четвертьфинальные соревнования среди команд вузов проводятся по регионам. Особенности каждого четвертьфинала указываются в приложении к настоящему положению.

1.5 Официальным языком четвертьфинальных соревнований является русский. Все печатные материалы представляются на русском языке. Все устные объявления делаются на русском языке.

1.6 Соревнование проводится по правилам студенческого чемпионата мира по программированию ACM ICPC (Association for Computing Machinery, International Collegiate Programming Contest, ACM ICPC).

1.7 Четвертьфинальные соревнования могут проводиться как очно, так и дистанционно. При дистанционном проведении четвертьфинала участники могут работать на рабочих местах в собственном вузе или по территориальной близости собираться в одном вузе. В этом случае за соблюдение правил соревнований отвечают тренеры команд вуза, где находится рабочее место команды.

1.8 В четвертьфинальных соревнованиях допустимо участие команд вне конкурса (это могут быть, например, участники, не проходящие по правилам участия по возрасту, курсу и т.д. в полуфинале). Такие участники при регистрации должны сообщить о своем желании участвовать вне конкурса. Статус «вне конкурса» может быть присвоен команде оргкомитетом, если команда не соответствует правилам участия (п.2. настоящих правил). Число внеконкурсных участников может быть ограничено техническими возможностями организаторов, поэтому заявка на участие вне конкурса может быть отклонена директором соревнований без дополнительного объяснения причин.

2. Участники

2.1 К участию в Четвертьфинальных соревнованиях допускаются команды из трех студентов или аспирантов одного учреждения высшего образования. Каждый член команды должен удовлетворять требованиям правил студенческого чемпионата мира:

  • участник должен являться студентом или аспирантом вуза, выставляющего команду;
  • участник, выступавший в двух финалах чемпионата мира, не допускается к соревнованиям;
  • участник, выступавший в пяти сезонах чемпионата мира, не допускается к соревнованиям, при этом в данном случае учитывается участие как в полуфиналах, так и в четвертьфиналах;
  • должно выполняться как минимум одно из двух условий:
    • участнику в год соревнований исполняется не более 23 лет;
    • участник впервые зачислен в вуз в не более чем за 5 лет до соревнований.

2.2 Директорат Полуфинальных соревнований имеет право устанавливать дополнительные требования к участникам Полуфинальных соревнований.

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

2.4 В случае отсутствия организационных или технических возможностей для обеспечения участия всех заявленных команд в Четвертьфинальных соревнованиях, решением директора Четвертьфинальных соревнований по согласованию с Директоратом Полуфинальных соревнований могут быть установлены дополнительные правила (квоты) отбора участников. При этом квоты четвертьфинальных соревнований для каждого вуза не могут быть меньше квот этого вуза в полуфинальных соревнованиях.

3. Порядок организации и проведения соревнований

3.1 Для проведения четвертьфинальных соревнований вузом-организатором создается оргкомитет и назначается директор соревнований.

3.2 Оргкомитет четвертьфинальных соревнований:

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

3.3 Методическая комиссия четвертьфинальных соревнований:

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

3.4 Технический комитет четвертьфинальных соревнований:

  • обеспечивает работу компьютеров и серверов;
  • обеспечивает функционирование сайта четвертьфинала, системы регистрации и оповещений;
  • обеспечивает работу тестирующей системы

3.5 Жюри четвертьфинальных соревнований:

  • отвечает на вопросы участников во время тура;
  • информирует участников об опечатках или неточностях в условиях задач в случае обнаружения таковых;
  • принимает решения в случае возникновения непредвиденных ситуаций с задачами или тестами к ним;
  • рассматривает после соревнований апелляции участников;

3.6 Директор четвертьфинальных соревнований

  • является членом оргкомитета, жюри, методической комиссии, а также председателем технического комитета;
  • принимает решения о квотах вуза и допуске команд к участию в соревнованиях;
  • принимает решения в случае возникновения непредвиденных ситуаций;

3.7 Соревнования проходят в несколько дней и состоят из пробного и основного тура. Пробный тур проводится для ознакомления участников с системой тестирования и рабочими местами. День проведения пробного тура не должен совпадать с днем основного тура. Время пробного тура не должно быть менее 1 часа. При дистанционном проведении соревнований время пробного тура может быть не ограничено сверху.

3.8 Основной тур соревнований длится пять часов. Тур может быть продлен по решению директора соревнований в случае непредвиденных обстоятельств. Если продолжительность тура будет изменена, жюри и технический комитет должны приложить все усилия, чтобы известить об этом участников своевременно и одновременно.

3.9 Для решения на основном туре должно быть предложено от шести до двенадцати задач. Настолько, насколько это возможно, задачи не должны опираться на знание конкретных предметных областей и языков программирования.

3.10 Во время соревнований участники решают предложенные задачи. Решением задачи является программа, составленная на одном из допустимых языков программирования. Программа не должна содержать вспомогательных модулей или файлов. Разные задачи можно решать на разных языках программирования.

3.11 Проверка решений производится во время соревнований. С помощью разработанного техническим комитетом интерфейса команды посылают свои решения на проверку. Тестирующая система компилирует программы, используя указанные в регламенте компиляторы и параметры командной строки,  и автоматически проверяет их на заданном наборе тестов.

3.12 Решения участников проверяются на заранее подготовленном методической комиссией наборе тестов. Решение принимается, если оно прошло все тесты. Частичные решения (прошедшие не все тесты) считаются неверными.

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

3.14 Решение должно выдавать одинаковые ответы на одинаковые тесты, независимо от времени запуска и программного окружения. При проверке задачи может быть проведено неограниченное количество повторных тестирований программы участника и может быть выбран наихудший результат по каждому из тестов.

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

3.16 Участники не должны использовать при написании программ никакие заготовки, сделанные не во время тура, т.е. все тексты программ, отправляемые на проверку, должны быть набраны во время соревнований. В случае дистанционного проведения соревнований контроль за исполнением этого пункта правил возлагается на тренера команды.

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

3.18 Жюри обладает исключительным правом определения правильности прохождения тестов, выставления оценок, определения победителей и дисквалификации участников. Жюри разбирает вопросы, возникающие в результате непредвиденных событий и обстоятельств.

4. Аппаратное и программное обеспечение

4.1 Команде предоставляется один компьютер класса не ниже Pentium IV c частотой 2ГГц с установленной операционной системой Windows XP или более новой. Компьютер должен быть подключен к сети для доступа к серверу соревнований. Оперативная память компьютера не менее 1Гб. При очном проведении соревнований компьютеры участников должны быть, по возможности, однотипными. В том случае, если рабочие места существенно отличаются, размещение команд проводится жеребьевкой.

4.2 На компьютере участников должно быть установлено следующее программное обеспечение:

  • Free Pascal 2.6.2;
  • Microsoft Visual Studio версии не ниже 2010, C/C++/C#;
  • MinGW (GNU C/C++ 4.6.2)
  • Java 7 SDK;
  • Far Manager версии не ниже 1.75;

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

4.3 Участники соревнований могут представлять решения на одном из следующих языков программирования:

  • Java;
  • C;
  • C++;
  • C#;
  • Pascal

Используются следующие системы программирования:

  • Free Pascal 2.6.2
  • Microsoft Visual C/C++/C# (из комплекта Visual Studio 2010)
  • Java SE 7 Update 40
  • GNU C/C++ 4.6.2 (MinGW)
  • GNU C/C++ 4.8.1 (MinGW)

Используемые тестирующей системой командные строки для компиляции решения показаны в web-интерфейсе системы.

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

5. Проверка решений

5.1 Решение проверяется на секретном наборе тестов, одинаковом для всех участников. Решение считается верным, если оно дает правильные ответы на все тесты.

5.2 Решения участников не должны:

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

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

5.4 Проверка решений происходит автоматически, поэтому программа должна строго следовать форматам входного и выходного файлов, описанным в условии задачи. Если в условии задачи явно не оговорено обратное, можно считать, что входные данные корректны и соответствуют ограничениям, заданным в условии задачи.

5.5 По окончании проверки решения тестирующей системой команде приходит ее результат. В нем указывается, было ли признано решение верным, и если нет, то тип ошибки и номер теста, на котором она произошла.

5.6 Тесты нумеруются с единицы. Первые несколько тестов должны соответствовать примерам из условия задачи. Эти тесты идут в том же порядке, что и примеры в условии. Остальные тесты чаще всего отсортированы таким образом, чтобы простые тесты шли раньше сложных, однако соблюдения этого принципа не гарантированно.

5.7 Возможные ошибки, выдаваемые системой проверки решения, перечислены в следующей таблице:

Таблица 5.1 Классификация ошибок

Тип ошибки Когда возникает Возможная причина
1. Ошибка компиляции В результате компиляции не создан исполняемый файл Синтаксическая ошибка в программе
2. Превышение лимита времени на тесте <N> Программа превысила заданный жюри предел времени для задачи
  1. Неэффективное решение
  2. Алгоритмическая ошибка в программе
3. Превышение ограничений по памяти на тесте <N> Программа превысила заданное жюри ограничение памяти для задачи
  1. Неэффективное решение
  2. Алгоритмическая ошибка в программе
4. Ошибка выполнения на тесте <N>

Программа завершила работу с ненулевым кодом возврата.

В этом случае результат работы не проверяется

  1. Ошибка исполнения
  2. Программа на C++ не завершается оператором “return 0”
  3. Ненулевой код возврата указан явно в программе
5. Неправильный ответ на тесте <N> Результат работы программы не совпадает с ответом жюри
  1. Неверный формат вывода
  2. Алгоритмическая ошибка в программе

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

5.8 Жюри публикует официальные тесты, использовавшиеся при проверке решений участников, после окончания основного тура, до начала апелляций.

5.9 Во время соревнований команды могут задавать вопросы жюри, как по условиям задач, так и по правилам проведения соревнований. Вопрос по условию задачи должен быть составлен в форме, предполагающей ответ «да» или «нет». Если вопрос поставлен некорректно или ответ следует из условия задачи, жюри отвечает “Без комментариев”. Если жюри согласно, что в условии присутствует неясность или ошибка, то всем командам рассылается соответствующее сообщение.

5.10 Система оценок и таблица результатов

  • Выше классифицируется команда, решившая большее число задач.
  • При равенстве числа решенных задач выше классифицируется команда, у которой меньше суммарное штрафное время.
  • При равенстве числа решенных задач и штрафного времени выше классифицируется команда, которая первой сдала свою последнюю зачтенную задачу.
  • Штрафное время вычисляется как сумма штрафного времени за все задачи. Для решенных задач штрафное время представляет собой время в минутах, прошедшее с начала тура до сдачи задачи, плюс 20 штрафных минут за каждое неверное решение по этой задаче. За нерешенные задачи штрафное время не начисляется.

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

6. Апелляции

6.1 Правильность решений участников определяет исключительно жюри.

6.2 После окончания основного тура жюри публикует официальный набор тестов, который может быть использован при подаче апелляций.

6.3 Апелляции, основанные на официальном наборе тестов, могут подаваться только в случае, если тесты не соответствует условию задачи. В этом случае, некорректные тесты будут исправлены или удалены, если не существует очевидного способа их исправления. После чего, все решения участников по данной задаче будут перепроверены. Полученные результаты станут официальными результатами соревнований.

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

6.5 Апелляции, связанные с техническими проблемами во время основного тура (особенно при дистанционной форме проведения соревнований) принимаются только в том случае, если об этих проблемах был поставлен в известность технический комитет во время самого тура (или, при проблемах со связью, сразу после их решения).

6.6 Порядок и срок подачи апелляций определяется ежегодно и указывается на сайте соревнований, однако он не может быть меньше суток с момента окончания соревнований. Апелляции от имени участников могут подаваться только тренером команды или уполномоченным им членом команды.

6.7 Если по результатам апелляции изменятся результаты соревнований, то набор команд, отправляемый на следующий этап Чемпионата, также может измениться. Окончательная таблица результатов формируется после окончания срока апелляций.