Skip to content
Bruno Cesar Ribas edited this page Jun 9, 2019 · 1 revision

O arquivo contest-description.txt

Este arquivo deve ser escrito sem o caractere \r

O arquivo é formado por diversas linhas contendo:

  1. 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
  1. 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"

  2. 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

  1. 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

  1. A quinta linha possui um número inteiro N que indica quantos problemas haverão no contest.

3

  1. Após o número N haverão N 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

  1. 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

  2. Após o número U, haverão U 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 ao sherlock, 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
  1. 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, onde n é 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, onde n assume os valores 0 ou 1 , 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 , onde n assume os valores 0 ou 1 , o padrão é 1, permitindo acesso público às estatísticas após o término do contest, com 0 somente o admin poderá ver, mesmo após o encerramento do contest
  • ALLOWLATEUSER=h, onde h assume os valores y ou n, 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
Clone this wiki locally