Aqui vão algumas dicas (7 dicas) rápidas pra quem não está acostumado com os tipos de problemas da maratona e de olimpíadas de informática em geral:
- Todo problema tem uma entrada exemplo e a saída esperada para aquela entrada. Você deve sempre se lembrar que essa entrada não é nem de perto a entrada que os juízes irão usar para testar seu programa. Lembre-se sempre de que é apenas um exemplo.
- Evite mandar programas precipitadamente. É bem melhor gastar 5 minutos testando o programa para ter certeza de que funciona para as mais diversas entradas do que receber uma mensagem de erro dos juízes (que acarreta uma penalização de 20 minutos).
- A maioria dos problemas sempre tem um "truque" escondido. Por exemplo, suponha um problema trivial de calcular fatorial. Você se lembrou de tratar o problema quando a entrada é zero?
- Evite usar as ferramentas de debug, elas consomem muito tempo.
- Ninguém vai analisar seu código, portanto não interessa se ele está elegante ou não. Se você tiver uma solução feia, porém eficiente, essa é a que se deve usar.
- Nem sempre um algoritmo polinomial pode ser viável.
- Não há nada pior do que gastar muito tempo fazendo e implementando um algoritmo para, depois, descobrir que ele está errado. Numa maratona, esse erro é fatal. Por isso, apesar de a pressa ser necessária, procure sempre certifica-se da corretude do algoritmo ANTES de implementá-lo!
Referêcia: maratona.ime.usp.br/
Tomo a liberdade de passar abaixo o link para os posts no meu blog relativos a competições de programação, onde descrevo a minha experiência em paricipar do Google Code Jam 2008:
http://dqsoft.blogspot.com/search/label/Competi%C3%A7%C3%B5es
Em tempo: o meu blog também tem alguns posts sobre algorítmos como os de filas, pilhas e ordenação.
Abraço,
Daniel
Tranquilo Daniel pode deixar o link ai ...se quiser linkar meu blog no seu eu agradeceria.
Continue visitando aqui.
abraço!
Boas dicas