Bem-vindo à Prova de Treino das Olimpíadas Nacionais de Informática 2025. Esta prova irá decorrer desde as 12:00 do dia 14 de Março até às 18:00 do dia 16 de Março. 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 (são as que foram dadas quando a vossa inscrição foi validada).
Cada problema vale 100 pontos, dos quais podem obter pontuações parciais por soluções que apenas resolvem parte do problema (ex: porque não só acertam em parte dos casos de teste ou porque só passam dentro dos limites de tempo em parte dos casos de teste).
A prova decorre num formato similar à final nacional, que será presencial (e no que é usado nas várias olimpíadas internacionais):
Esta prova de treino contém problemas do mesmo estilo da qualificação, mas sem qualquer ranking ou competição. Também o formato da prova de qualificação será ligeiramente diferente, como habitual (terão acesso a um documento como este explicando tudo o que é relevante).
Aqui estão 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. O mesmo se aplica ao Discord, não devem discutir nada sobre a prova até estar terminada (depois das 18:00 do dia 16).
O uso de qualquer modelo de linguagens (como chatGPT ou qualquer ferramenta do género) é expressamente proibido, visto que não é permitido no resto das provas das ONI.
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:
Ao lerem um enunciado devem reparar que os casos de teste estão dividos 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.
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++2a |
.cpp |
Java | OpenJDK | 1.8 | javac |
.java |
Pascal | Free Pascal | 3.0.4 | fpc -v0w -oprog |
.pas |
Python | CPython | 3.6.8 | python3 prog.py |
.py |
Problema A | Problema B | Problema C | Problema D |
---|---|---|---|
1 segundo | 1 segundo | 1 segundo | 2 segundos |