MOJ: Manual da equipe de sala (.staff e .cstaff) — MOJ docs

MOJ: Manual da equipe de sala (.staff e .cstaff)

Este manual é para você que faz parte da equipe de sala de um contest no MOJ (o juiz online). Ele cobre dois papéis: .staff (equipe de sala) e .cstaff (chefe de staff de uma sede). O foco é a interface web.

Se você quer a visão de quem compete, veja o MANUAL-CONTEST.md.

Como o papel funciona

No MOJ o seu papel vem do sufixo do login:

Você entra no contest como qualquer pessoa (usuário e senha) e o sistema já mostra as telas do seu papel. Você não precisa fazer nada de especial: basta usar as credenciais que a organização te entregou.

Uma diferença importante entre os dois papéis: a .staff executa as tarefas da fila (pega, imprime, entrega), enquanto a .cstaff acompanha a fila em modo somente leitura e tem acesso às etiquetas com senha. A ideia central da .cstaff é: vê, mas não executa as ações da fila.


Parte 1: .staff (equipe de sala)

Você é a pessoa que fica na sala cuidando das impressões e dos balões. Você não é competidor: não envia código e não vê clarifications.

Abas que você vê

Aba Para que serve
Score O placar (a versão congelada, como um usuário comum).
🖨️ Impressão A fila de impressão e balões da sua sede. É a sua tela principal.
🎥 Animeitor A mesa do telão em modo somente leitura: as fotos e músicas dos times da sua sede. Você olha e escuta; não envia, não troca, não baixa o pacote.
📄 Documentos Os documentos que a organização publicou (info sheet, caderno da prova, folha de time limits) para você baixar e imprimir.
🔁 Rodadas O placar e as submissões das rodadas encerradas (o aquecimento, por exemplo).
Sair Encerra a sua sessão.

A fila de impressão (/contest/staff/)

Entre pela máquina que tem a impressora da sala instalada e funcionando. Quem imprime é a sua máquina, pelo seu navegador — o servidor só monta o PDF. Numa prova em que os times rodam uma imagem fechada, essa imagem é a máquina dos times: a sua é um desktop comum (Windows, macOS ou um Linux qualquer), com a impressora configurada. O .cstaff, que só acompanha, entra de qualquer máquina.

A tela de impressão é uma tabela com duas coisas na mesma fila:

  1. Pedidos de impressão dos times: um arquivo enviado pelo time, já montado com uma folha de rosto.
  2. Balões: tarefas automáticas, criadas no primeiro Accepted de cada dupla (time, problema). O balão mostra a cor daquele problema, para você levar o balão certo até a mesa do time.

Durante o congelamento do placar (freeze) não entra balão novo — e isso não é defeito. Um balão atravessando a sala conta à plateia exatamente o que o freeze existe para esconder: quem acabou de resolver. Então acerto feito com o placar congelado não vira tarefa e não é entregue depois; a tarefa simplesmente não existe. Se a organização preferir o clássico (balão andando durante o freeze), o .admin liga isso nas Configurações — e aí eles aparecem normalmente.

Pedido de impressão não muda: o time continua imprimindo a qualquer momento, freeze ou não.

Você só vê a fila da sua sede. Pedidos e balões de outras sedes não aparecem para você.

Como tratar uma tarefa

Cada botão é uma etapa do processo. O fluxo normal é: Pegar, depois 🖨️ Imprimir (ou Abrir PDF), e por fim ✅ Entregue. O idioma da tela é o do contest: numa prova em inglês esses mesmos botões aparecem como Claim, 🖨️ Print, Open PDF e ✅ Delivered — é o que você vê nas telas do tutorial ilustrado.

Botão O que faz
Pegar Reserva a tarefa para você. Se outra pessoa já pegou, aparece um aviso.
🖨️ Imprimir Abre o PDF combinado, chama a impressão e marca a tarefa como processada.
Abrir PDF Só abre o PDF, sem imprimir.
✅ Entregue Marca que você entregou o material em mãos ao time.

O que sai na impressora

Primeiro a folha de rosto (time, universidade, login, número da tarefa, nº de páginas e uma linha para assinar), depois o documento. Código-fonte sai em fonte monoespaçada, com a indentação original e as linhas numeradas — dá para apontar o dedo e dizer "linha 42".

Cada página de código se identifica sozinha, em cima e embaixo: no alto, a data e o nome do arquivo; no rodapé, o login do time, o arquivo e o número da tarefa. Numa mesa com trinta impressões empilhadas, uma folha que se solta da capa continua dizendo de quem é.

Modo automático

Há uma caixa de seleção de modo automático, e a sua escolha fica guardada. Com o modo automático ligado e a aba aberta, cada nova tarefa é pega, impressa e marcada sozinha, sem você clicar.

Para que a janela de impressão do navegador não apareça a cada tarefa, rode o navegador em modo quiosque. No Chrome/Chromium, use a opção --kiosk-printing.

Aquecimento: o seu ensaio (e a prova pode ter duas rodadas)

Muita prova roda um aquecimento antes da prova oficial — mesma sala, mesmas contas, mesmo endereço. Para você ele não é simulação: os pedidos e as tarefas de balão que aparecem na fila são de verdade, e é a única chance de descobrir se o balcão funciona antes que isso custe caro.

Quatro testes, nesta ordem:

  1. A impressora — papel, toner e a fila do sistema operacional. Imprima uma tarefa de ponta a ponta, e confira a cor do balão no papel contra o balão que está na sua mão.
  2. O pop-up — o 🖨️ Imprimir abre outra aba; se o navegador bloquear, a tarefa não é marcada como impressa. Libere os pop-ups deste site no aquecimento, não no minuto 3 da prova.
  3. O modo automático, se for usá-lo — com o navegador em modo kiosk (--kiosk-printing), para nada parar num diálogo de impressão.
  4. O trajeto — leve um papel até uma mesa e um balão até um time. Quem descobre o número da sala durante a prova já está atrasado.

Quando a organização promove a prova oficial:

O que a .staff NÃO faz


Parte 2: .cstaff (chefe de staff de uma sede)

Você supervisiona uma sede. Você acompanha a fila da sua sede, imprime as etiquetas com as credenciais (incluindo senha) e, no fim, conduz a revelação do placar da sua sede. A ideia central: vê, mas não executa as ações da fila.

Abas que você vê

Aba Para que serve
Score O placar (a versão congelada, como um usuário comum).
🖨️ Impressão A fila da sua sede, em modo somente leitura.
🏷️ Etiquetas As folhas de credenciais da sua sede, com senha.
🎥 Animeitor A mesa do telão recortada na sua sede: aqui você escreve (envia/troca/remove foto e música dos seus times, e baixa o pacote .zip da sede). Não troca o padrão do contest nem vê chaves de webcast.
📄 Documentos Os documentos publicados da prova, para baixar e imprimir na sede.
🔁 Rodadas O placar e as submissões das rodadas já encerradas.
Sair Encerra a sua sessão.
🏆 Revelação A cerimônia de revelação da sua sede. Só aparece depois que a prova encerra para todas as sedes.

🖨️ Impressão, somente leitura (/contest/staff/)

É a mesma tela da .staff, mas sem os botões de ação: a coluna de ações fica vazia e a barra indica "somente leitura". Você acompanha a fila da sua sede, mas quem pega, imprime e entrega é a .staff.

🏷️ Etiquetas (/contest/badges/), com senha

Aqui está o que a .staff não tem: as folhas de credenciais prontas para imprimir (modelo Pimaco A4), com nome, login, senha, sede e instituição de cada conta.

📄 Documentos da prova (/contest/docs/)

Aqui ficam os documentos que a organização publicou, prontos para você baixar e imprimir na sede:

Documento O que é
Informações do ambiente O info sheet: versões de compilador, limite de memória e de pilha, linguagens aceitas e o tempo limite de cada problema. Costuma ser afixado na sala ou entregue com o caderno.
Caderno da prova Capa + todos os enunciados. É o que vai impresso na mesa de cada time.
Folha de time limits A tabela letra · nome · tempo limite (com errata, se houver).

Cada um sai em PDF (para imprimir) e HTML, em português e em inglês — escolha a linha do idioma que a sua sede usa. O botão abrir mostra o arquivo na hora, para conferir antes de mandar para a impressora.

Score congelado

O seu placar é o congelado, como um usuário comum. Um administrador pode liberar a visão completa para uma conta específica (a lista SCORE_FULL_USERS), mas isso é uma exceção controlada pelo admin.

🏆 Revelação por sede (/contest/score/reveal.html)

Você conduz a cerimônia de revelação da sua sede, no estilo ICPC (de baixo para cima).

  1. A tela filtra para os times que você enxerga (a sua sede).
  2. Ela só destrava depois que a prova encerra para todas as sedes (o horário base mais as prorrogações).
  3. Você revela posição por posição, do último para o primeiro.

Descongelar tudo e publicar o placar global são ações do administrador, não suas (ele faz isso pelo botão 🏁 Encerrar evento, na Central do painel — ver MANUAL-ADMIN.md §6½).

Aquecimento: o ensaio da sede

O aquecimento é quando as credenciais que você entregou passam pelo único teste que vale. O que você quer sair do aquecimento sabendo é uma coisa só: todo time da sua sede entrou pelo menos uma vez. Etiqueta que não loga é problema para resolver antes de o relógio começar — e quem tem a senha é você.

É também o momento do resto da lista: conferir que a fila mostra os seus times e só eles, ver a equipe de sala da sua sede ensaiando com fila de verdade, e recolher as fotos que faltam enquanto ninguém está sob pressão.

Duas coisas não se perdem na promoção para a prova oficial: o seu escopo de sede (é configuração) e as fotos e músicas que você recolheu (elas são da conta do time, não da rodada). O que é arquivado é a rodada: placar, submissões, fila de impressão, clarifications.

O que a .cstaff NÃO faz


Tabela-resumo: o que cada papel pode e não pode

Ação .staff .cstaff
Ver o placar congelado (Score) Sim Sim
Ver a fila de impressão da sua sede Sim Sim (somente leitura)
Pegar, imprimir e entregar tarefas da fila Sim Não (acesso negado)
Usar o modo automático de impressão Sim Não
Ver etiquetas com senha (🏷️ Etiquetas) Não (acesso negado) Sim (só a sua sede)
Baixar os documentos publicados (📄 Documentos) Sim Sim
Gerar/publicar documentos Não (é do admin/juiz-chefe) Não (é do admin/juiz-chefe)
Conduzir a revelação da sua sede (🏆) Não Sim (após encerrar todas as sedes)
Ver a mesa do telão (🎥 Animeitor) da sua sede Sim (só olhar/ouvir) Sim
Enviar/trocar foto e música dos times da sede Não (acesso negado) Sim (só a sua sede)
Baixar o pacote .zip do telão Não Sim (recortado na sede)
Trocar a foto/música PADRÃO do contest Não Não (é do .animeitor/admin)
Ver ou criar chaves de webcast Não Não (é do .animeitor/admin)
Enviar solução (competir) Não Não
Ver clarifications Não Não
Ver o placar completo Não Não (salvo liberação do admin)
Ver etiquetas de outras sedes Não Não
Descongelar tudo / publicar placar global Não Não (é do admin)

Ponteiros