A prova é individual e sem consulta a qualquer material, impresso ou digital. Exemplos de material proibido durante a competição incluem:
- livros, apostilas, manuais, folhas impressas ou escritas
- qualquer arquivo digital, como arquivos de programas ou trechos de programas escritos anteriormente e presentes no seu computador
- equipamentos de comunicação (telefone celular, radios)
- fones de ouvido, calculadoras, microfones, alto-falantes.
São permitidos:
- Folhas em branco para rascunho
- Canetas, lápis, borracha
- Réguas
Durante a prova os competidores não devem:
- acessar a Internet além das páginas do CMS
- comunicar-se com outras pessoas, além do Comitê Científico através do CMS
- realizar engenharia reversa nos casos de teste para resolver a tarefa de forma altamente dependente dos casos de teste.
Início e final da prova
Os competidores devem preparar previamente o computador de trabalho e um telefone celular conforme descrito em ambiente de prova.
Antes de iniciar a prova, o competidor deve:
- iniciar a gravação da tela do computador com o OBS Studio.
- entrar na sala do Google Meet indicada pela Coordenação, usando o telefone celular do ambiente de prova.
Ao final da prova, o competidor deve:
- fazer o upload do arquivo de gravação de tela do computador para o endereço indicado pela Coordenação.
Tarefas
- O enunciado de cada tarefa especifica a forma de entrada e saída de dados que deve
ser utilizada pelo programa submetido, e pode ser:
- entrada de dados realizada lendo da entrada padrão (stdin), com a resposta esperada escrita na saída padrão (stdout).
- entrada e saída de dados realizada a através de interfaces específicas descritas no enunciado (por exemplo, com a entrada sendo feita acessando uma função de nome específico). Nesse caso, os competidores poderão baixar um arquivo zip contendo um esqueleto do arquivo fonte para a tarefa, os arquivos de interface e um exemplo do programa de correção, para que o competidor possa testar o seu programa localmente.
- Cada tarefa é dividida em sub-tarefas ou grupos de casos de teste, que são avaliados separadamente. Veja detalhes da pontuação de uma tarefa em Pontuação.
Submissões
- Cada submissão deve ser uma tentativa de solucionar o problema descrito no enunciado.
- Cada competidor pode fazer no máximo uma submissão por minuto. Essa restrição não se aplica nos 15 minutos finais de cada prova.
- Cada competidor pode fazer no máximo 50 submissões para cada tarefa. Esse limite pode ser aumentado para algumas tarefas.
- Cada programa fonte submetido deve:
- ser escrito em C++
- ser menor do que 256 KB
- poder ser compilado pelo corretor em menos do que 10 segundos, usando no máximo 512 MB de memória.
Pontuação
A pontuação da prova é calculada da seguinte maneira:
- Para cada submissão, a pontuação para cada caso de teste é calculada de acordo com a saída de seu programa.
- Para cada submissão, a pontuação para cada sub-tarefa ou grupo casos de teste é a mínima das pontuações para os testes da sub-tarefa ou grupo, a menos que o enunciado especifique diferentemente.
- A pontuação final de cada sub-tarefa ou grupo de casos de teste é a pontuação máxima obtida pelo competidor nesta sub-tarefa ou grupo de casos de teste, considerando todas as submissões.
- A pontuação final de cada tarefa é a soma das pontuações finais de suas sub-tarefas ou grupos de casos de teste. A soma é arredondada para dois dígitos decimais (os mais próximos).
Por exemplo, considere um competidor que realizou duas submissões para uma tarefa que contém dois grupos de casos de teste. A primeira submissão recebeu 30 pontos para o primeiro grupo e 10 pontos para o segundo grupo. A segunda submissão recebeu 0 pontos para o primeiro grupo e 40 pontos para o segundo grupo. Então, a sua pontuação final para essa tarefa é 70 (ou seja, max(30,0) + max(10,40)).
Resultados da correção
Os competidores podem usar o CMS para visualizar o status de suas submissões e um pequeno relatório sobre eventuais erros de compilação de seu programa fonte.
Para cada submissão, o sistema de correção mostra a pontuação para cada sub-tarefa ou grupo de casos de teste. Se uma sub-tarefa (ou grupo) não é totalmente resolvida, o corretor mostra o resultado apenas do primeiro caso de teste entre os casos de testes com menor pontuação da tarefa. O resultado inclui o número do caso de teste e uma das seguintes razões:
- A saída está correta
- A saída está errada
- A execução excedeu o limite de tempo
- Execução interrompida (pode ter sido causada por violação de limites de memória)
- Execução falhou porque o código de retorno foi diferente de zero
Para tarefas com pontuação parcial, ao invés de A saída está correta ou A saída está incorreta, a resposta indica "Aceita" ou "Resposta errada". Aceita significa que a submissão produziu uma resposta correta. Note que a submissão pode não receber a pontuação total, devido a regras descritas no enunciado da tarefa. Resposta errada significa que a submissão violou alguma restrição ou produziu uma resposta incorreta. Se necessário, os significados de Aceita e Resposta errada serão esclarecidos no enunciado da tarefa.
Os casos de teste são ordenados da mesma forma em todas as submissões. Nenhuma informação sobre os dados reais, a saída produzida pela solução do competidor ou qualquer outro detalhe de execução serão fornecidos ao competidor.
Note que a pontuação mostrada é provisória. Há duas maneiras em que esta pontuação pode ser alterada após ter sido mostrada ao competidor:
- devido a um recurso bem sucedido após a prova
- devido às submissões terem sido reavaliadas por decisão do Comitê Científico. Nesse caso, soluções que se comportam não deterministicamente, ou que estejam próximas do limite de tempo ou limite de memória podem resultar em uma pontuação diferente. Nesses casos, a pontuação final é a obtida na reavaliação mais recente.
Comunicação
Durante a prova, os competidores podem fazer perguntas sobre as tarefas, regras ou correção. Esse tipo de pergunta é chamada de Solicitação de Esclarecimento. Competidores podem também fazer solicitações não relacionadas a tarefas, regras ou correção. Esse tipo de pergunta é chamada de Solicitação de Assistência.
Solicitações de Esclarecimento e de Assistência devem ser feitas usando o CMS, no menu Comunicação.
Solicitações de Esclarecimento
Para Solicitações de Esclarecimento os competidores devem escrever sua pergunta de forma que uma resposta "sim" ou "não" tenha significado claro. Solicitações de esclarecimento serão respondidas com uma das seguintes respostas:- “Sim”
- “Não”
- "Respondida no enunciado da tarefa" – O enunciado contém informação suficiente, o competidor deve lê-lo de novo, cuidadosamente.
- "Pergunta inválida" – A pergunta muito provavelmente não está escrita de forma que uma resposta "sim" ou "não" tenha sentido. O competidor deve refrasear a pergunta.
- "Sem comentário" – O competidor está querendo uma informação que o Comitê Científico não pode divulgar.
Respostas mais elaboradas podem ser usadas se o Comitê Científico considerar necessário.
Solicitações de Assistência
Solicitações de Assistência incluem solicitação para sair do posto de trabalho por alguma razão (ir ao banheiro, por exemplo).
Os competidores devem esperar a resposta do Comitê Científico antes de qualquer ação relacionada à solicitação. Em particular, os competidores não devem se levantar do posto de trabalho antes de receberem autorização para isso.
Anúncios
O Comitê Científico pode decidir que é necessário fazer um anúncio geral para todos os competidores, para passar alguma informação importante. O sistema CMS será utilizado também nesse caso. Os competidores podem visualizar os anúncios gerais no menu Comunicação do CMS.
Falhas de conexão
Se a conexão ficar lenta demais para acesso ao CMS pelo computador e à sala do Google Meet pelo telefone celular, o competidor pode desconectar o telefone celular para economizar banda. Assim que possível o competidor deve avisar o Comitê Científico da situação, enviando uma "Solicitação de Assistência" pelo CMS.
No caso de a Internet falhar e o competidor perder a comunicação com o CMS e o Google Meet, o competidor deve:
- Usar o telefone celular para informar a situação ao Comitê Científico, enviando uma mensagem no grupo de WhatsApp (nesse caso a proibição de uso do telefone celular para comunicação é suspensa).
- Continuar tentando resolver as tarefas, com a gravação de tela pelo OBS Studio ligada.
- Para cada submissão de solução ao CMS que desejar realizar e não conseguir, o competidor deve armazenar o código fonte da submissão separadamente, em uma pasta "SubmissoesPerdidas". Note que é importante salvar cada submissão separadamente.
Se o competidor não conseguir retomar o acesso ao CMS para realizar submissões, ao final do tempo de prova o competidor deve compactar a pasta SubmissoesPerdidas e fazer o upload do arquivo compactado para o endereço indicado pelo Comitê Científico. O Comitê Científico se reserva o direito de aceitar ou rejeitar as soluções submetidas dessa maneira.
Falhas de energia
Se a energia local falhar e o competidor não puder continuar a prova (por exemplo porque usa um computador desktop), o competidor deve comunicar-se com a Coordenação o mais rapidamente possível enviando uma mensagem no grupo de WhatsApp (nesse caso a proibição de uso do telefone celular para comunicação é suspensa). O Comitê Científico decidirá o que fazer dependendo da situação e do tempo que durar a falha de energia. Volta ao início