ACM ICPC World Finals 2012

Solution sketches

12 solutions (A–L)

Disclaimer This is an unofficial analysis of some possible ways to solve the problems of the ACM ICPC World Finals 2012. Any error in this text is my error. Should you find such an error, I would be happy to hear about it at austrin@kth.se.

Also, note that these sketches are just that—sketches. They are not intended to give a complete solution, but rather to outline some approach that can be used to solve the problem. If some of the terminology or algorithms mentioned below are not familiar to you, your favorite search engine should be able to help.

Finally, I want to stress that while I’m the one who has written this document, I do not take credit for the ideas behind these solutions—they come from many different people.

— Per Austrin

AAsteroid Rangers
BCurvy Little Bottles
CBus Tour
DFibonacci Words
EInfiltration
FKeys
GMinimum Cost Flow
HRoom Service
IA Safe Bet
JShortest Flight Path
KStacking Plates
LTakeover Wars

Summary

My guesstimated order for the problems to be solved was BKECLGDAFIHJ. The actual order in which the problems were solved was BDKLCEGIFA, with HJ left unsolved, which means I was less off than usual though I certainly overestimated problem D and underestimated problem E. In terms of number of teams that ended up solving each problem, the numbers were:

ProblemABCDEFGHIJKL
Solved21107696312801106716
Submissions51202251278300294512113028990

In total there were 419 Accepted submissions, 924 Wrong Answer submissions, 243 Time Limit Exceeded submissions and 74 Run Time Errors. The most popular language was C++ by a wide margin: 1459 submissions compared to 220 for Java. There was also one single submission made in C (which was accepted, on problem B).

Congratulations to St. Petersburg State University of IT, Mechanics and Optics, the 2012 ICPC World Champions!