ACM International Collegiate Programming Contest
A ACM International Collegiate Programming Contest (também conhecido por ICPC) é uma competição anual de programação entre universidades do mundo todo. A competição é patrocinada pela IBM. Com sede na Universidade Baylor e regiões autônomas em todos continentes, o ICPC é organizado pela Association for Computing Machinery (ACM).
Cada time tem somente um computador, sendo necessário que haja trabalho em equipe e habilidade para resistir à pressão para vencer.
História
O ICPC tem sua raíz em uma competição sediada na Universidade A&M do Texas em 1970 organizada pelo Capítulo Alpha da Sociedade de Honra da Ciência da Computução Upsilon Pi Epsilon. A competição evoluiu para sua forma atual em 1977, com as primeiras finais organizadas em conjunto com a Conferência de Ciência da Computação da ACM.
De 1977 a 1989 a competição incluiu principalmente times dos EUA e Canadá. Com sede na Universidade Baylor desde 1989, com regionais estabelecidas dentro da comunidade das universidades no mundo todo, com supervisão da ACM e apoio substancial da indústria, o ICPC se tornou uma competição de âmbito global, com times de 84 países em 2005.
As Finais Mundiais do ACM International Collegiate Programming Contest se tornaram ao longo de sua história um evento de 4 dias organizado nas melhores localidades mundo afora. Na final Mundial de 2009, que foi realizada em Estocolmo na Suécia, o evento seguiu a tradição do Prêmio Nobel, com a abertura se dando no Palácio Municipal e o encerramento na sala de concerto da cidade, lugar onde também é realizada a cerimônia de entrega do Prêmio Nobel.[1][2]
Regras da competição
O ICPC é uma competição em equipe. As regras estipulam que cada time seja composto de três estudantes. Os participantes devem ser estudantes universitários, que tenham tido no máximo cinco anos de educação universitária antes da competição ou tenham até 23 anos até o final do ano anterior ao ano da final mundial, ou seja, basta que cada estudante preencha um dos dois requisitos descritos para poder participar. Estudantes que tenham competido em duas Finais Mundiais ou cinco competições regionais não podem participar novamente.
Durante a competição, os times têm 5 horas para resolver entre 8 e 11 problemas computacionais (com tipicamente 8 problemas para as regionais e 10 para a final mundial). As soluções devem ser submetidas em C, C++ ou Java. Os programas são então testados com casos de teste e, se o programa imprimir alguma resposta errada ou não for eficiente o suficiente, ele não é aceito e o time é notificado sobre isso.
O vencedor é o time que resolver mais problemas corretamente. Se necessário, em caso de empate no número de problemas resolvidos, a classificação dos times é determinada pela soma dos tempos da submissão correta de cada problema mais 20 minutos para cada submissão rejeitada em um problema que acabe sendo resolvido.[3][4]
Regionais e final mundial
A competição se dá em várias etapas. Muitas universidade realizam competições internas para definir seus representantes na fase regional. Então os times inscritos na competição disputam entre si na fase regional para definir os representantes de cada região na final mundial. No caso do Brasil existem ainda as sub-regionais, que ocorrem em várias sedes pelo país a fim de definir quais serão os times que irão para a fase regional. Cada universidade pode inscrever quantos times desejar na fase sub-regional, mas só dois times de cada instituto podem seguir adiante.
Cada regional manda ao menos um time para a final mundial, com o número de times que cada uma delas manda variando de acordo com o número de instituições e times inscritos, além do desempenho deles na prova.
No Brasil a regional é organizada pela Maratona de Programação, que coordena a fase sub-regional e a fase regional da competição. Na regional brasileira, que é também a fase final da Maratona de Programação, chamada de final brasileira, os 10 melhores times recebem medalhas, sendo ouro para os três primeiros, prata para os três seguintes e bronze para os demais. Além disso, há ainda um troféu para o campeão do evento.[5]
Em Portugal as equipas disputam o South Western European Regional Contest (SWERC) [6] com Espanha, Itália, Suiça, França, Austria e até 2008 uma parte da Alemanha. Antes deste evento decorre todos os anos a Maratona Inter-Universitária de Programação (MIUP)[7] só para equipas portuguesas. Algumas universidades usam esta prova para seleccionar as melhores equipas para participar no SWERC.
Maiores Vencedores
As 32 edições do ICPC tiveram vencedores de 23 universidades diferentes, originárias de nove países. Apenas 8 universidades foram vitoriosas mais que uma vez, com destaque à recordista Universidade de Stanford, única com três titulos.
Entre países, apenas cinco conquistaram o torneio mais de uma vez, com excelente retrospecto dos Estados Unidos, que já venceram 17 vezes.
Títulos | Universidade |
---|---|
3 | Universidade de Stanford |
3 | Instituto de São Petersburgo |
2 | Instituto de Tecnologia da Califórnia |
2 | Universidade de São Petersburgo |
2 | Universidade Jiao Tong de Xangai |
2 | Universidade de Varsóvia |
2 | Universidade de Waterloo |
2 | Universidade de Washington em St. Louis |
Títulos | País |
---|---|
17 | ![]() |
6 | ![]() |
2 | ![]() |
2 | ![]() |
2 | ![]() |
1 | ![]() |
1 | ![]() |
1 | ![]() |
1 | ![]() |
Referências
- ↑ http://cm2prod.baylor.edu/ICPCWiki/Wiki.jsp?page=World%20Final%20Schedule%20of%20Events
- ↑ http://nobelprize.org/award_ceremonies/
- ↑ http://maratona.ime.usp.br/
- ↑ http://icpc.baylor.edu/icpc/
- ↑ http://maratona.ime.usp.br/regras08.html
- ↑ http://swerc.eu/swerc/index.php
- ↑ http://miup.estga.ua.pt/competicao.aspx
Veja também
Ligações externas
- Site oficial do ICPC (Em inglês)
- Site da Maratona de Programação
- Spoj Brasil - Site com problemas de competições de programação
- ACM-ICPC Live Archive - Site com problemas de competições anteriores (em inglês)
- UVA Online Judge - Site com problemas computacionais (em inglês)
- Spoj - Site com problemas computacionais (em inglês)