Difference between revisions of "Турниры с токенами"

From EjudgeWiki
 
(One intermediate revision by the same user not shown)
Line 8: Line 8:
  
 
  [problem]
 
  [problem]
 +
# ... прочие настройки
 
  [[serve.cfg:problem:short_name|short_name]] = "A"
 
  [[serve.cfg:problem:short_name|short_name]] = "A"
 
  [[serve.cfg:problem:long_name|long_name]] = "Задача A"
 
  [[serve.cfg:problem:long_name|long_name]] = "Задача A"
Line 18: Line 19:
 
   
 
   
 
  [problem]
 
  [problem]
 +
# ... прочие настройки
 
  short_name = "B"
 
  short_name = "B"
 
  long_name = "Задача B"
 
  long_name = "Задача B"
Line 26: Line 28:
 
  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" # после окончания показывать все
 +
 +
Для настройки турнира с токенами необходимо в настройки задач добавить спецификацию для начального числа токенов и дополнительной информации, показываемой при использовании токена. Например, по каждой задаче изначально дается 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]
 +
# ...
 +
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"

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"