DPUM'2004

Aspectos práticos da resolução dos problemas do concurso

Este documento contém informação prática relevante para a resolução dos problemas apresentados no Concurso de Programação da Nova.

Restrições durante a compilação dos programas

Estas são estas as restrições impostas pelo sistema de avaliação, durante a compilação de programas:

Opções de compilação

É indispensável conhecer as opções de compilação que o sistema de avaliação automático usa. Por exemplo, sabia que a compilação é efectuada com todos os warnings ligados, em C, C++ e Pascal?

Para evitar dissabores, ao testar cada solução, é importante usar as mesmas opções de compilação do avaliador automático!

Eis as opções de compilação que o sistema de avaliação usa, para as diversas linguagens:


Versões dos compiladores

O sistema de avaliação corre em Linux e usa versões relativamente recentes dos compiladores:

Restrições durante a a execução dos programas

Estas são estas as restrições impostas pelo ambiente de execução dos programas: Os recursos disponíveis são largamente suficientes para resolver qualquer problema do concurso, independentemente da linguagem usada.

Dados de entrada

Os dados de entrada, usados para testar as soluções dos concorrentes, são lidos da entrada padrão. Consistem em texto cuidadosamente formatado para ser simples de processar: Note que as linhas com números inteiros que ocorrem no início dos dados de entrada devem ser consumidas bem até ao fim para evitar desalinhamentos na leitura dos dados subsequentes. Eis como isso se faz nas várias linguagens:


Dados de saída

Os dados de saída, produzidos pelos programas dos concorrentes, são escritos na saída padrão. É necessário respeitar rigorosamente o formato exigido no enunciado. Qualquer desacerto, mesmo ligeiro, é suficiente para que um programa seja classificado como "Presentation error".

Note que não é possível detectar visualmente certas anomalias nos dados de saída. Por exemplo: um espaço em branco no final duma linha, uma linha em branco no final dos dados, a omissão da mudança de linha na última linha dos dados. Todas estas situações são inaceitáveis e provocam um "Presentation error".