Huawei Optical Challenge 2022
Версия для печати

Правила соревнования

Организация соревнования

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

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

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

Технический комитет обеспечивает работоспособность программного и аппаратного обеспечения, следит за порядком на соревновании.

Допуск участников

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

Проведение соревнования

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

Жюри принимает решения на языках программирования C++, C. Отправка решений осуществляется во время тура с помощью программного обеспечения соревнования. Через некоторое время после отправки команде становится доступен результат проверки. После окончания тура решения не принимаются.

Участники могут использовать бумажную литературу (справочники, словари, листинги алгоритмов). Разрешается использование любого программного обеспечения, установленного на используемом командой компьютере. Недопустимо использование решений других команд, либо решений, опубликованных на сторонних интернет-сайтах.

Во время челленджа участники могут обсуждать задачу только с членами своей команды и членами технического комитета. Команда может обратиться к жюри с вопросом по условию задачи. Вопрос должен предполагать ответ «Да» или «Нет». Вопрос задаётся с помощью программного обеспечения соревнования. Жюри может ответить на поставленный вопрос «Да», «Нет», «Смотрите условие» или «Без комментариев». Жюри может разослать ответ на вопрос всем участникам соревнования. Жюри отвечает на вопросы с 10:00 до 20:00 в дни челленджа.

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

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

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

Входные данные подаются программе в стандартном потоке ввода. Программа должна выводить ответ в стандартный поток вывода.

В решениях задач запрещается:

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

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

Для задачи определены максимальное время выполнения, объём доступной памяти и максимальный размер выходных данных для одного теста. Если на одном из тестов программа превысила это время, выделила больше памяти или вывела больше данных, решение получает 0 баллов за данный тест.

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

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

Тип ошибки может быть одним из следующих:

сообщение расшифровка возможная причина
Wrong answer N ответ программы неверен ошибка в программе; неверный алгоритм; программа выводит ответ в файл
Crash N программа аварийно завершила работу деление на ноль; бесконечная рекурсия; массивы имеют недостаточный размер
Time limit exceeded N программа не закончила работу в установленное время бесконечный цикл; неэффективное решение
Memory limit exceeded N программа превысила установленное ограничение по памяти утечка памяти; неэффективное решение
Output limit exceeded N программа превысила ограничение на размер выходных данных бесконечный цикл; ошибка в программе

При возникновении ошибок Crash, Memory limit exceeded, Time limit exceeded, Output limit exceeded вывод программы не проверяется.

Результаты

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

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