Logo
SnarkNews
 

Правила турниров, проводящихся по схеме ACM.

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

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

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

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

После того, как задача признана системой решённой, последующие попытки этого же участника, сделанные по той же задаче, никакого влияния на результат не оказывают (то есть не считаются ни принятыми, ни неверными).

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

Суммарное время решения определяется как сумма времён решения для каждой принятой задачи. Время решения задачи определяется как время от начала соревнования до первой верной попытки участника по данной задаче плюс 20 штрафных минут за каждую сделанную до этого неверную попытку. Правила округления при вычислении времени по каждой задаче и при определении суммарного времени решения определяются используемой тестирующей системой и правилами проведения турнира. Задачи, не признанные решёнными к моменту окончания соревнования, никакого вклада в суммарное время не дают (в том числе, и в виде штрафов за неверные попытки).

Во время соревнования участникам доступна отсортированная в соответствии с правилами турнира по положению команд на данный момент таблица текущих результатов (монитор). В этой таблице для каждого участника отмечены решённые задачи, количество неверных попыток по каждой задаче (если таковые имеются), а также указано количество решённых задач и суммарное время решения. За некоторое время до конца соревнований (обычно по истечении 4/5 от продолжительности турнира) происходит заморозка: участникам показывается не текущая таблица результатов, а таблица на момент заморозки, при этом вердикты проверяющей системы по-прежнему приходят каждой команде.

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