Bem-vindo à Prova de Qualificação das Olimpíadas Nacionais de Informática 2026. Esta prova é uma prova presencial, realizada na escola (ou noutro local com vigilância), com a duração de 2 horas e meia. Existem seis horários possíveis entre os dias 18 e 20 de Março para realizar a prova:
Cada escola determinará qual o horário onde pretende fazer a prova mediante inscrição num formulário que todos os professores responsáveis irão receber por email durante o dia 8 de Março e que deverão preencher até final do dia 16 de Março (o formulário permite escolher o horário pretendido e os participantes respetivos).
Depois da inscrição ser processada os respetivos participantes e professores envolvidos irão receber (até 17 de Março) um email confirmando a escolha. As contas dos estudantes apenas estarão ativas na prova de qualificação no horário escolhido.
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.
Este ano iremos excepcionalmente permitir +6 participantes para final (para um total máximo de 36), convidando a vir à final os 6 concorrentes mais bem pontuados (com pontuação acima de zero) que ainda não estejam qualificados pela regra anterior e que não pertençam ao género que esteja maioritariamente representado nos 30 qualificados, combatendo as desigualdades de género e permitindo ter um leque de participantes que assegure a possibilidade de Portugal levar também uma delegação às EGOI, além das habituais delegações nas IOI, WEOI e OII.
Todos os participantes recebem exatamente o mesmo conjunto de problemas, independentemente da data escolhida. Não existe tabela de classificação pública durante a prova.
Durante a prova deverão tentar resolver 4 problemas (enumerados de A a D) e submetê-los na plataforma Mooshak (notem que é um endereço diferente do treino, específico para a prova oficial), cujas credenciais já devem ter recebido por e-mail (é o mesmo username e a mesma password do treino).
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 das vossas últimas submissões em cada problema. A pontuação oficial e final só será conhecida depois da prova terminar.
Aqui ficam mais algumas informações gerais:
Scanner (para leitura de dados) é pouco
eficiente. Como tal, disponibilizamos a
classe FastScanner, cujo código está disponível
aqui. Podem
usar esta classe como usariam a classe Scanner e
não têm de incluir o seu código na vossa submissão, o nosso
compilador de java já inclui essa classe.
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 para todos (ou seja, depois do dia 20 de Março).
Os participantes poderão usar o seu próprio computador ou um computador disponibilizado pela escola, podendo escolher o sistema operativo e ambiente de desenvolvimento.
Durante a prova, os concorrentes podem consultar livremente documentação das linguagens, materiais de referência e código pessoal previamente preparado.
No entanto, o uso durante a prova de qualquer modelo de linguagens (LLM), como o ChatGPT, Claude, Gemini, Copilot, Grok, ou qualquer outra ferramenta do género é expressamente proibido. É igualmente proibido comunicar com qualquer pessoa, dentro ou fora do local da prova, para pedir ou receber qualquer tipo de ajuda. A prova é individual. Se for descoberto que algum concorrente violou qualquer uma destas regras, esse concorrente será desqualificado da prova.
Ao lerem um enunciado devem reparar que os casos de teste estão divididos em grupos (ou subtarefas). Cada grupo tem uma pontuação associada e um conjunto de restrições que podem ser diferentes das restrições globais do problema, de forma a tornar o problema mais fácil. A vossa solução não tem de resolver corretamente todos os grupos para ter alguma pontuação, se resolver corretamente um dos grupos então terá a pontuação desse grupo. É recomendado que olhem para os diferentes grupos de testes, mesmo que não saibam resolver o problema todo podem conseguir resolver alguns dos grupos e assim obter mais pontos.
Durante a prova, cada grupo é avaliado em tempo real usando um teste representativo (um pequeno conjunto de casos avaliado como um único grupo). O resultado que veem no Mooshak durante a prova é apenas feedback e não representa a vossa pontuação real.
A pontuação oficial e a classificação final são calculadas posteriormente, executando novamente a vossa última submissão em cada problema no conjunto completo de testes escondidos.
Nota importante: é muito importante sublinhar que a pontuação obtida nos testes representativos não influencia a vossa pontuação final. Ou seja, mesmo que tenham 100 pontos durante a prova 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 teste representativo não significa que tenham 0 pontos nesse grupo de testes na classificação final.
| Linguagem | Compilador | Versão | Comando de compilação | Extensão |
|---|---|---|---|---|
| C | gcc | 8.5.0 | gcc -Wall -lm |
.c |
| C++ | gcc | 8.5.0 | g++ -Wall -std=c++17 |
.cpp |
| Java | OpenJDK | 19.0.1 | javac |
.java |
| Python | PyPy | 3.11.13 | pypy |
.py |
Serão aqui colocados no dia 18 de Março