Bem-vindo à Prova de Qualificação das Olimpíadas Nacionais de Informática 2020. Esta prova irá decorrer desde as 12:00 do dia 23 de Abril até às 18:00 do dia 25 de Abril. 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.
Este ano temos algumas novidades nos problemas que vos apresentamos. Principalmente a pensar em que nunca participou antes, aqui estão 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.
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:
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 tará 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.
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 |
Problema A | Problema B | Problema C | Problema D |
---|---|---|---|
1 segundo | 1 segundos | 4 segundos | 0.5 segundos |