Vous êtes sur la page 1sur 18

ICPC – International Collegiate

Programming Contest
• Competição para estudantes universitários
• Surgiu em 1976
• Promovido anualmente pela Association for
Computer Machinery (ACM)
• Aproximadamente 8000 times dos 5
continentes, 85 países, 2000 universidades
• A final mundial de 2010 ocorrerá em Harbin,
China, e contará com a participação de 100
times, dos quais 7 são brasileiros.
ICPC – International Collegiate
Programming Contest
• A competição possui duas etapas:
1. Regionais
2. Final Mundial

• As regionais ocorrem em países de todo o


mundo, no ano anterior à final mundial

• Na primeira fase, os times brasileiros participam


da Regional da América do Sul, chamada
Maratona de Programação.
Maratona de Programação
• Três etapas:
1. Seletivas nas universidades (agosto)
2. Primeira fase (setembro)
3. Segunda fase: Final Brasileira (outubro)

• Formato de disputa:
– Times compostos por três alunos
– Um computador por time
– Permitido o uso de material impresso
– 8 a 12 problemas
– 5 horas para a resolução
– Maior número de problemas no menor tempo
Maratona de Programação
• As implementações devem ser em C, C++ ou
Java (a critério do time)
• O time deve implementar uma solução para cada
problema e submeter o código fonte
• A solução é testada com uma entrada preparada
pelos juízes
• A compilação, execução e comparação com a
saída correta são feitos automaticamente
• Tradicionalmente, o time recebe um balão para
cada problema correto
Maratona de Programação
• Os juízes enviam umas das respostas
abaixo para uma submissão:
– Yes
– No – Wrong Answer
– No – Presentation Error
– No – Time Limit Exceeded
– No – Runtime Error
– No – Compile Error
Maratona de Programação
• Tópicos:
– Algoritmos em Grafos
– Algoritmos Gulosos
– Simulação
– Algoritmos de Enumeração - Backtracking
– Programação Dinâmica
– Teoria dos Números
– Geometria Computacional
– Algoritmos de Processamento de Strings
– Análise Combinatória e Probabilidade
– Teoria dos Jogos
Como são os problemas?
• Cada problema contém:
1. O enunciado do problema

2. Informações sobre a entrada

3. Informações sobre a saída

4. Exemplo de entrada

5. Exemplo de saída
Fechem as Portas!
• ENUNCIADO: Madame Beauvoir possui uma mansão onde ela recebe
todos os seus descendentes (netos e bisnetos) durante as férias. Sua mansão
possui exatamente N quartos (identificados de 1 a N), onde N é também a
quantidade de netos e bisnetos (identificados de 1 a N).

Como toda criança, os descendentes de M. Beauvoir são bastante travessos.


Todo dia é a mesma confusão: eles acordam de manhã cedo antes dela e se
encontram no grande jardim. Cada descendente, um de cada vez, entra na
mansão e troca o estado das portas dos quartos cujos números são múltiplos
do seu identificador. Trocar o estado de uma porta significa fechar uma porta
que estava aberta ou abrir uma porta que estava fechada. Por exemplo, o
descendente cujo identificador é igual a 15 vai trocar o estado das portas 15,
30, 45, etc.

Considerando que todas as portas estão inicialmente fechadas (todos os


descendentes fecham as portas antes de descer para o jardim) e que cada
descendente entra exatamente uma vez na mansão (a confusão é tão grande
que não sabemos em que ordem), quais portas estarão abertas após a entrada
de todos os descendentes na mansão?
Fechem as Portas!
• ENTRADA: A entrada contém vários casos de teste. Cada caso de teste
consiste em uma linha que contém um inteiro N (0 <= N <= 25.000.000),
indicando o número de portas e descendentes. O final da entrada é
indicado por N = 0.

• SAÍDA: Para cada caso de teste da entrada seu programa deve produzir
uma linha na saída, contendo a sequência crescente de números
correspondente aos identificadores dos quartos cujas portas estarão
abertas. Ao imprimir a sequência, deixe um espaço em branco entre dois
elementos consecutivos.
Elegibilidade para 2010

• Estar regularmente matriculado em uma


instituição de ensino superior

• Ter iniciado os estudos universitários a partir


de 2006 OU ter nascido a partir de 1987

• Ter disputado no máximo 1 final mundial

• Ter disputado no máximo 4 finais brasileiras.


Colocação da UFMG na
Final Brasileira
Classificação
40
35
30
25
20
15
10
5
0
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
Fotos da
competição
Leitura recomendada
Informações
• Treinos
• UVa: http://icpcres.ecs.baylor.edu/onlinejudge/
• ACM-ICPC: http://acm.uva.es/archive/nuevoportal/
• SPOJ-BR: http://br.spoj.pl/
• Topcoder: http://www.topcoder.com/tc

• Sites oficiais
• ICPC: http://cm.baylor.edu/
• Maratona: http://maratona.ime.usp.br
• UFMG: http://www.maratona.dcc.ufmg.br/2009/

• Contato
• Email: leocm@dcc.ufmg.br, maratona@dcc.ufmg.br
• Grupo de discussão: maratona-dcc@googlegroups.com

Vous aimerez peut-être aussi