Serve.cfg:global:score system

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/score_system

Имя переменной: score_system
Содержится в: global
Используется: serve
Тип содержимого: score_system
Может отсутствовать: да
Значение по умолчанию: ACM
Может повторяться: нет

Редактирование элемента: страница "Editing contest", вкладка "Global settings (serve.cfg)", поле "Scoring system".

Описание. Данная переменная определяет тип турнира. Поддерживаются три типа турниров, описываемых ниже.

  • Тип турнира ACM. Этот тип задаётся строкой
score_system = acm

в конфигурационном файле турнира. Данный тип турнира соответствует регламенту проведения чемпионата мира среди студенческих команд ACM. Он имеет следующие характеристики:

  1. Проверка решений ведётся непосредственно по ходу турнира. На каждую свою посылку участники немедленно получают ответ с результатами её тестирования.
  2. Участники ранжируются по числу решённых задач. Чем больше решено задач, тем выше место участника. Среди участников, решивших одинаковое количество задач, участники ранжируются по количеству штрафных очков. Чем меньше штрафных очков, тем выше место участника.
  3. Участник считается решившим задачу, если решение этой задачи, посланное участником, успешно прошло все тесты. Частичные решения не засчитываются.
  4. Штрафные очки для участника считаются как сумма штрафных очков по всем задачам, решённым участником. Нерешённые задачи не дают вклада в штрафные очки. Для решённой задачи штрафные очки по ней вычисляются как количество минут, прошедших от начала турнира до момента сдачи задачи, плюс по 20 минут за каждую предыдущую неуспешную попытку сдачи задачи. Попытки сдачи программы после успешной не учитываются.
  • Тип турнира KIROV. Данный тип турниров придуман В.Матюхиным. Этот тип задаётся строкой
score_system = kirov

в конфигурационном файле турнира. Он имеет следующие характеристики:

  1. Проверка решений ведётся непосредственно по ходу турнира. На каждую свою посылку участники немедленно получают ответ с результатами её тестирования.
  2. Участники ранжируются по числу набранных баллов. Чем больше баллов набрал участник, тем выше его место.
  3. Баллы, набранные участником, считаются как сумма баллов по каждой из задач турнира. Количество баллов, полученных участником за задачу, вычисляется как максимальное количество баллов, полученных участником за все попытки сдачи задачи.
  4. Баллы, полученные участником за попытку вычисляются следующим образом:
    • Если решение участника прошло все тесты, оно получает полный балл за эту задачу (см. конфигурационную переменную full_score) за вычетом произведения штрафных баллов за попытку (см. конфигурационную переменную run_penalty) помноженных на количество предыдущих попыток сдачи решения. Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю.
    • Если решение участника прошло часть тестов (либо не прошло ни одного теста), оно получает частичный балл за эту задачу в зависимости от конфигурационных переменных test_score, test_score_list, test_sets за вычетом произведения штрафных баллов за попытку (см. конфигурационную переменную run_penalty) помноженных на количество предыдущих попыток сдачи решения. Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю.
  • Тип турнира OLYMPIAD. Этот тип задаётся строкой
score_system = olympiad

в конфигурационном файле турнира. Данный тип турнира соответствует регламенту проведения российских и международных олимпиад по информатике. Он имеет следующие характеристики.

  1. Полная проверка решений участников ведётся после окончания основного времени турнира. Во время турнира присылаемые решения проверяются на нескольких первых тестах (см. конфигурационную переменную tests_to_accept). Если решение участника прошло все предварительные тесты, оно принимается для последующей проверки, а если решение не прошло хотя бы один тест, оно для проверки не принимается и в окончательной проверке решений по окончанию турнира не участвует.
  2. Участники ранжируются по числу набранных баллов. Чем больше баллов набрал участник, тем выше его место.
  3. Баллы, набранные участником, считаются как сумма баллов по каждой из задач турнира. Количество баллов, полученных участником за задачу, вычисляется как максимальное количество баллов, полученных участником за все попытки сдачи задачи.
  4. Баллы, полученные участником за попытку вычисляются следующим образом:
    • Если решение участника прошло все тесты, оно получает полный балл за эту задачу (см. конфигурационную переменную full_score) за вычетом произведения штрафных баллов за попытку (см. конфигурационную переменную run_penalty) помноженных на количество предыдущих попыток сдачи решения. Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю.
    • Если решение участника прошло часть тестов (либо не прошло ни одного теста), оно получает частичный балл за эту задачу в зависимости от конфигурационных переменных test_score, test_score_list, test_sets за вычетом произведения штрафных баллов за попытку (см. конфигурационную переменную run_penalty) помноженных на количество предыдущих попыток сдачи решения. Если в результате получается число, меньшее нуля, количество баллов полагается равным нулю.