Prova de Qualificação - Olimpíadas Nacionais de Informática 2021

Bem-vindo à Prova de Qualificação das Olimpíadas Nacionais de Informática 2021. Esta prova irá decorrer desde as 12:00 do dia 30 de Abril até às 18:00 do dia 2 de Maio. Durante esse tempo poderão tentar resolver 4 problemas (enumerados de A a D) e submetê-los na plataforma Mooshak, cujas credenciais devem ter recebido por e-mail.

Cada problema vale 100 pontos, dos quais podem obter pontuações parciais por soluções que apenas resolvem parte do problema. A pontuação na qualificação será igual à soma de das vossas últimas submissões em cada problema. A pontuação oficial e final só é conhecida depois da da prova terminar.

Os melhores concorrentes da fase de qualificação, até um máximo de 30, participarão na final nacional. Iremos aceitar um máximo de 20 alunos do 12º ano e um máximo de 25 alunos do 11º e 12º, promovendo a participação de alunos que ainda tenham mais anos de ONIs pela frente.

Aqui estão algumas informações gerais:

Se tiverem perguntas por favor utilizem o sistema de perguntas do Mooshak. Não coloquem qualquer tipo de código ou qualquer sugestão de solução, a vossa pergunta será vista por todos os concorrentes. Se não obedecerem a esta regra podem ser desqualificados. O mesmo se aplica ao Discord, não devem discutir nada sobre a prova até estar terminada (depois das 18:00 de dia 2).

Partes de Problemas

Cada problema está dividido em várias partes. Cada parte está relacionada com a anterior, mas é um problema completamente diferente. Isto significa que na prática têm de resolver vários problemas relacionados num. Algumas coisas a saber sobre este assunto:

Pré-Testes

Contrariamente aos anos anteriores, quando submeterem um código no Mooshak da qualificação, terão como resultado um número de 0 a 100. Isto porque cada problema terá um caso de teste por subtarefa, a valer exatamente o número de pontos dessa subtarefa. Estes casos de teste não representam a vossa pontuação real, são apenas uma forma de pré-teste que vos permite avaliar se o código se está a comportar como esperado. Em particular, nenhum dos pré-testes contará para a pontuação final, esta terá um conjunto de testes distintos.

Cada pré-teste terá dimensões próximas das dimensões máximas da subtarefa correspondente, ou seja, o pré-teste de uma subtarefa onde uma váriavel de N é menor ou igual a 104 será atribuído um valor de N muito próximo ou igual a 104.

Nota importante: é muito importante sublinhar que a pontuação obtida nos pré-testes não influencia a vossa pontuação final. Ou seja, mesmo que tenham 100 pontos de pré-testes numa submissão de um problema, podem vir a ter 0 pontos se o vosso programa falhar todos os testes finais. Do mesmo modo, 0 pontos num pré-teste não significa que tenham 0 pontos nesse grupo de testes na classificação final.

Informação técnica

Linguagens de programação

Linguagem Compilador Versão Comando de compilação Extensão
C gcc 8.3.1 gcc -Wall -lm .c
C++ gcc 8.3.1 g++ -Wall -std=gnu++14 .cpp
Java Java (TM) SE Runtime Environment 1.8 javac .java
Pascal Free Pascal 3.0.4 fpc -v0w -oprog .pas
Python CPython 3.6.7 python3 prog.py .py

Limites de tempo e memória

Problema A Problema B Problema C Problema D
2 segundos 2 segundos 1 segundo 3 segundos

Qualificação para a final das ONI'2021
(30/04 a 02/05 de 2021)