-
Notifications
You must be signed in to change notification settings - Fork 7
Creating Contests
Este arquivo deve ser escrito sem o caractere \r
O arquivo é formado por diversas linhas contendo:
- Na primeira linha um identificador único no padrão ID Unix, reconhecido pela regex
^[A-Za-z0-9_-]$
- Uma boa prática é utilizar um identificador que remeta a você no ID, facilita caso precise rodar alguma operação em todos os seus contests. Exemplo:
bcr_1alistacompiladores20191
-
A segunda linha possui o nome completo do contest, e deve ser colocada entre Aspas, esse é o nome que vai aparecer na página inicial. Exemplo:
"[UnB-FGA] 1a lista de Compiladores"
-
A terceira linha possui o horário em que o contest deve iniciar. O horário deve ser em segundos desde 1970-01-01 00:00:00 UTC.
- Você pode gerar com o comando
date
, por exemplo:date --date="next saturday 14:00" +%s
1560618000
- A quarta linha possui o horário em que o contest será encerrado, i.e, quando não aceitará mais submissões. O formato é o mesmo que da linha 3:
1560618000
- A quinta linha possui um número inteiro
N
que indica quantos problemas haverão no contest.
3
- Após o número
N
haverãoN
linhas, cada uma contendo descrição do problema, no seguinte formato:
SITE ID "Nome Completo" Nome_Pequeno link-enunciado
Onde:
-SITE
pode ser cdmoj
, spoj-br
ou spoj-www
-
ID
é o ID do problema no SITE -
"Nome completo"
título do problema, entre ASPAS -
Nome_pequeno
, pode ser Letra ou número mas coloque em ordem nesse arquivo -
link-enunciado
, pode ser:-
site
, redireciona pro SITE -
sitepdf
, rediceriona para o pdf do SITE -
none
, não atrela enunciado ao problema - um link iniciado por
http
- o nome de um arquivo no diretório
enunciados/
-
exemplo:
cdmoj moj-problems/olamundo "Olá Mundo" A olamundo.html
-
Após a descrição dos enunciado iniciam-se a descrição dos usuários. A primeira linha da descrição dos usuários é composta por um único número
U
representando a quantidade de usuários -
Após o número
U
, haverãoU
linhas, cada uma representando a configuração de um único usuário no seguinte formato:
login:senha:Nome Completo:email:
exemplo:
bruno:123123:Bruno Ribas:[email protected]:
- Usuários cujo login termina com
.admin
representam usuários admin, ou seja, podem ver todo histórico de submissões, verificar as submissões de cada usuário e possui acesso aosherlock
, uma ferramenta rudimentar de detecção de plágio. - O usuário admin pode enviar submissões a qualquer momento do contest e nenhuma submissão aparece no placar ou na página de estatísticas
- Usuários com login terminando em
.mon
indica que é um monitor do contest, ele possui acesso às submissões. - As submissões deste usuário não aparecem no placar nem nas estatísticas
- Variáveis de modificação.
Após a descrição dos usuários pode-se colocar um subconjunto de variáveis que modificam o comportamento do contest de alguma forma, e são elas:
-
LANGUAGES
, string que impões subconjunto de linguagens aceitas no contest. Por exemplo:LANGUAGES="C CPP SPIM GO"
- nesta configuração apenas submissões nas linguagens com aquela extensão serão aceitas
- se o
SITE
não suportar alguma linguagem o problema não será corrigido -
PASSWD=1
, habilita a possibilidade de troca de senha, por padrão o contest não permite troca de senha -
PENALTYCOST=n
, onden
é um número inteiro que representa a penalidade em minutos por submissão errada. A configuração padrão é20
, o mesmo da Maratona de Programação -
PARTIALSTATISTIC=n
, onden
assume os valores0
ou1
, o padrão é0
não permitindo acesso à página de estatísticas publicamente enquanto o contest estiver em execução, somente o admin possuirá acesso às estatísticas parciais -
STATISTICS=n
, onden
assume os valores0
ou1
, o padrão é1
, permitindo acesso público às estatísticas após o término do contest, com0
somente o admin poderá ver, mesmo após o encerramento do contest -
ALLOWLATEUSER=h
, ondeh
assume os valoresy
oun
, o padrão én
- esta configuração permite, ou não, a entrada de usuários por meio de conversa com o robô
mojinho
no telegram - o objetivo é para que um contest possa ficar público e os usuários possam entrar a qualquer momento, é restrito um usuário por identificador único do telegram
- esta configuração permite, ou não, a entrada de usuários por meio de conversa com o robô