After the contest completed, a possible error in the judges' solution for Problem A was brought to our attention. We found that our solution was indeed incorrect and hence those teams that were judged to having solved Problem A correctly were in fact incorrect. (But in the same way the judges' were incorrect!) Two teams that had programs judged incorrect were, in fact correct. Since it is now impossible to return the programs originally judged correct, it would be unfair to change those judgements. However, all runs judged incorrect have been rejudged and the two new correct runs have been added to the scoreboard. Note this does not change the ranking of the top three teams. However, it does boost one team to fourth place.
The judges regret this mistake and take full responsibility. We believe this resolution is the fairest.
After each problem heading, statistics for that problem are given in the form:
number of submissions/number of correct submissions/time (in minutes) of the
first correct submission
Keep track of the set of letters greater than and less than each letter. You must recognize when you're sorted and when you're inconsistent.
This was intended to be the easiest problem. All that was required was maintaining two stacks.
One of the two "hard" problems. You needed to generate the left and right subtrees recursively, as the bounds on n were too large to store all subtrees. Finding the recurrence that gives number of the left and right subtrees is the heart of the problem.
The first difficulty is to translate the input numbers to the 3-dimensional grid. Then a flood fill, starting at a square outside the station and counting every time you hit a face, will correctly count the number of exterior faces. Care must be taken not to seep inside.
Once the weighted graph is built, you need to use the shortest path algorithm, or the all-pairs shortest path, algorithm, to find the shortest paths. You could keep track of the actual paths (but it's not really necessary), not just the lengths.
The other "hard" problem. Not conceptually hard, but there are many things to keep track of and simulate correctly. Pushing debris is one trickier part of the program. Looking one move ahead is useful.
An easier problem. Probably you'll store the displayed ice in an array of characters. First filling in the vertical and horizontal molecules and then the angled ones can only fit in one way. (Start in the upper left corner.)