Difference between revisions of "Турниры с токенами"
(2 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
Турнир с токенами - это разновидность турнира с полной проверкой решений участников во время турнира, но с неполной обратной связью. Решения участников проверяются на всех тестах непосредственно во время тура (в системе ejudge это - турниры типа [[ACM]] или [[KIROV]], но не типа [[OLYMPIAD]]). По умолчанию участник имеет доступ к ограниченной информации о прохождении программой тестов, но может получить более полную информацию, потратив свои <i>токены</i>. Каждому участнику выдается ограниченное количество токенов в начале турнира, в течение турнира токены могут периодически пополняться. В системе ejudge токены по каждой задаче получаются и тратятся независимо от других задач. | Турнир с токенами - это разновидность турнира с полной проверкой решений участников во время турнира, но с неполной обратной связью. Решения участников проверяются на всех тестах непосредственно во время тура (в системе ejudge это - турниры типа [[ACM]] или [[KIROV]], но не типа [[OLYMPIAD]]). По умолчанию участник имеет доступ к ограниченной информации о прохождении программой тестов, но может получить более полную информацию, потратив свои <i>токены</i>. Каждому участнику выдается ограниченное количество токенов в начале турнира, в течение турнира токены могут периодически пополняться. В системе ejudge токены по каждой задаче получаются и тратятся независимо от других задач. | ||
− | Рассмотрим пример настройки турнира с токенами в ejudge. | + | Система ejudge поддерживает турниры с токенами, начиная с версии [[Изменения в версии 3.2.0|3.2.0]]. Рассмотрим пример настройки турнира с токенами в ejudge. |
Пусть в турнире есть две задачи: A, в которой 2 предварительных теста и 20 финальных, и B, в которой 3 предварительных теста и 25 финальных. В ходе турнира участник может видеть протокол тестирования на предварительных тестах и получает результат проверки только на предварительных тестах. После окончания турнира участник сможет видеть все. Тогда настройки задачи A и B будут примерно такими: | Пусть в турнире есть две задачи: A, в которой 2 предварительных теста и 20 финальных, и B, в которой 3 предварительных теста и 25 финальных. В ходе турнира участник может видеть протокол тестирования на предварительных тестах и получает результат проверки только на предварительных тестах. После окончания турнира участник сможет видеть все. Тогда настройки задачи A и B будут примерно такими: | ||
[problem] | [problem] | ||
+ | # ... прочие настройки | ||
[[serve.cfg:problem:short_name|short_name]] = "A" | [[serve.cfg:problem:short_name|short_name]] = "A" | ||
− | long_name = "Задача A" | + | [[serve.cfg:problem:long_name|long_name]] = "Задача A" |
+ | [[serve.cfg:problem:full_score|full_score]] = 100 # полное решение - 100 баллов | ||
+ | [[serve.cfg:problem:full_user_score|full_user_score]] = 0 # решение на предварительных тестах получает 0 баллов | ||
+ | [[serve.cfg:problem:test_score|test_score]] = 5 # по 5 баллов на основные тесты | ||
+ | [[serve.cfg:problem:test_score_list|test_score_list]] = "0 0" # предварительные тесты стоят 0 баллов | ||
+ | [[serve.cfg:problem:open_tests|open_tests]] = "1-2:full,3-22:hidden" # во время турнира показывать только первые два теста | ||
+ | [[serve.cfg:problem:final_open_tests|final_open_tests]] = "1-22:full" # после окончания показывать все | ||
+ | |||
+ | [problem] | ||
+ | # ... прочие настройки | ||
+ | short_name = "B" | ||
+ | long_name = "Задача B" | ||
full_score = 100 # полное решение - 100 баллов | full_score = 100 # полное решение - 100 баллов | ||
full_user_score = 0 # решение на предварительных тестах получает 0 баллов | full_user_score = 0 # решение на предварительных тестах получает 0 баллов | ||
− | test_score = 5 # по 5 баллов на основные тесты | + | test_score = 4 # по 4 балла на основные тесты |
− | test_score_list = "0 0" # предварительные тесты стоят 0 баллов | + | test_score_list = "0 0 0" # предварительные тесты стоят 0 баллов |
− | open_tests = "1-2:full,3-22:hidden" # во время турнира показывать только первые два теста | + | open_tests = "1-3:full,4-28:hidden" # во время турнира показывать только первые два теста |
− | final_open_tests = "1-22:full" # после окончания показывать все | + | final_open_tests = "1-28:full" # после окончания показывать все |
+ | |||
+ | Для настройки турнира с токенами необходимо в настройки задач добавить спецификацию для начального числа токенов и дополнительной информации, показываемой при использовании токена. Например, по каждой задаче изначально дается 5 токенов, каждый час добавляется по одному токену, а потратив один токен можно увидеть балл, который получила задача на полном тестировании, и посмотреть вердикты прохождения задачи на всех тестах. Такая спецификация задается следующим образом: | ||
+ | |||
+ | [[serve.cfg:problem:tokens|tokens]] = "5+1/1h-1/FinalScore,TokenOpenTests" | ||
+ | |||
+ | Спецификация <tt>TokenOpenTests</tt> указывает, что для показа протокола в случае использованного токена нужно использовать спецификацию видимости <tt>token_open_tests</tt>. В данном примере она может быть такой: | ||
+ | |||
+ | [[serve.cfg:problem:token_open_tests|token_open_tests]] = "1-22:brief" | ||
+ | |||
+ | Тогда полная конфигурация задач может выглядеть следующим образом: | ||
+ | |||
+ | [problem] | ||
+ | # ... | ||
+ | [[serve.cfg:problem:short_name|short_name]] = "A" | ||
+ | [[serve.cfg:problem:long_name|long_name]] = "Задача A" | ||
+ | [[serve.cfg:problem:full_score|full_score]] = 100 # полное решение - 100 баллов | ||
+ | [[serve.cfg:problem:full_user_score|full_user_score]] = 0 # решение на предварительных тестах получает 0 баллов | ||
+ | [[serve.cfg:problem:test_score|test_score]] = 5 # по 5 баллов на основные тесты | ||
+ | [[serve.cfg:problem:test_score_list|test_score_list]] = "0 0" # предварительные тесты стоят 0 баллов | ||
+ | [[serve.cfg:problem:open_tests|open_tests]] = "1-2:full,3-22:hidden" # во время турнира показывать только первые два теста | ||
+ | [[serve.cfg:problem:final_open_tests|final_open_tests]] = "1-22:full" # после окончания показывать все | ||
+ | [[serve.cfg:problem:enable_tokens|enable_tokens]] # включить поддержку токенов для этой задачи | ||
+ | [[serve.cfg:problem:tokens|tokens]] = "5+1/1h-1/FinalScore,TokenOpenTests" | ||
+ | [[serve.cfg:problem:token_open_tests|token_open_tests]] = "1-22:brief" | ||
[problem] | [problem] | ||
+ | # ... | ||
short_name = "B" | short_name = "B" | ||
long_name = "Задача B" | long_name = "Задача B" | ||
Line 26: | Line 63: | ||
open_tests = "1-3:full,4-28:hidden" # во время турнира показывать только первые два теста | open_tests = "1-3:full,4-28:hidden" # во время турнира показывать только первые два теста | ||
final_open_tests = "1-28:full" # после окончания показывать все | final_open_tests = "1-28:full" # после окончания показывать все | ||
+ | enable_tokens # включить поддержку токенов для этой задачи | ||
+ | tokens = "5+1/1h-1/FinalScore,TokenOpenTests" | ||
+ | token_open_tests = "1-28:brief" |
Latest revision as of 10:15, 26 November 2014
Навигация: Главная страница/Система ejudge/Использование/Турниры с токенами
Турнир с токенами - это разновидность турнира с полной проверкой решений участников во время турнира, но с неполной обратной связью. Решения участников проверяются на всех тестах непосредственно во время тура (в системе ejudge это - турниры типа ACM или KIROV, но не типа OLYMPIAD). По умолчанию участник имеет доступ к ограниченной информации о прохождении программой тестов, но может получить более полную информацию, потратив свои токены. Каждому участнику выдается ограниченное количество токенов в начале турнира, в течение турнира токены могут периодически пополняться. В системе ejudge токены по каждой задаче получаются и тратятся независимо от других задач.
Система ejudge поддерживает турниры с токенами, начиная с версии 3.2.0. Рассмотрим пример настройки турнира с токенами в ejudge.
Пусть в турнире есть две задачи: A, в которой 2 предварительных теста и 20 финальных, и B, в которой 3 предварительных теста и 25 финальных. В ходе турнира участник может видеть протокол тестирования на предварительных тестах и получает результат проверки только на предварительных тестах. После окончания турнира участник сможет видеть все. Тогда настройки задачи A и B будут примерно такими:
[problem] # ... прочие настройки short_name = "A" long_name = "Задача A" full_score = 100 # полное решение - 100 баллов full_user_score = 0 # решение на предварительных тестах получает 0 баллов test_score = 5 # по 5 баллов на основные тесты test_score_list = "0 0" # предварительные тесты стоят 0 баллов open_tests = "1-2:full,3-22:hidden" # во время турнира показывать только первые два теста final_open_tests = "1-22:full" # после окончания показывать все [problem] # ... прочие настройки short_name = "B" long_name = "Задача B" full_score = 100 # полное решение - 100 баллов full_user_score = 0 # решение на предварительных тестах получает 0 баллов test_score = 4 # по 4 балла на основные тесты test_score_list = "0 0 0" # предварительные тесты стоят 0 баллов open_tests = "1-3:full,4-28:hidden" # во время турнира показывать только первые два теста final_open_tests = "1-28:full" # после окончания показывать все
Для настройки турнира с токенами необходимо в настройки задач добавить спецификацию для начального числа токенов и дополнительной информации, показываемой при использовании токена. Например, по каждой задаче изначально дается 5 токенов, каждый час добавляется по одному токену, а потратив один токен можно увидеть балл, который получила задача на полном тестировании, и посмотреть вердикты прохождения задачи на всех тестах. Такая спецификация задается следующим образом:
tokens = "5+1/1h-1/FinalScore,TokenOpenTests"
Спецификация TokenOpenTests указывает, что для показа протокола в случае использованного токена нужно использовать спецификацию видимости token_open_tests. В данном примере она может быть такой:
token_open_tests = "1-22:brief"
Тогда полная конфигурация задач может выглядеть следующим образом:
[problem] # ... short_name = "A" long_name = "Задача A" full_score = 100 # полное решение - 100 баллов full_user_score = 0 # решение на предварительных тестах получает 0 баллов test_score = 5 # по 5 баллов на основные тесты test_score_list = "0 0" # предварительные тесты стоят 0 баллов open_tests = "1-2:full,3-22:hidden" # во время турнира показывать только первые два теста final_open_tests = "1-22:full" # после окончания показывать все enable_tokens # включить поддержку токенов для этой задачи tokens = "5+1/1h-1/FinalScore,TokenOpenTests" token_open_tests = "1-22:brief" [problem] # ... short_name = "B" long_name = "Задача B" full_score = 100 # полное решение - 100 баллов full_user_score = 0 # решение на предварительных тестах получает 0 баллов test_score = 4 # по 4 балла на основные тесты test_score_list = "0 0 0" # предварительные тесты стоят 0 баллов open_tests = "1-3:full,4-28:hidden" # во время турнира показывать только первые два теста final_open_tests = "1-28:full" # после окончания показывать все enable_tokens # включить поддержку токенов для этой задачи tokens = "5+1/1h-1/FinalScore,TokenOpenTests" token_open_tests = "1-28:brief"