Tom Conerly (only one to solve all 6 problems)

Q: You won by 2 problems.

A: After Wednesday I wanted to do better so I did a lot of SGU which paid off. Also I think I do better on harder problem sets.

Q: What are your overall thoughts on the problem set?

A: Much more challenging than Wednesday algorithmically. None of the problems were that difficult to code the hard part was coming up with an algorithm that would run in time. C, D, and E were all a matter of making a crucial observation which leads directly to the algorithm.

Q: Which of E and F do you think was more challenging?

A: Easily F. F took me 52 minutes to solve while E only took 29. E is just a matter of making the observation that you cannot have a cycle. The problem looks harder than it is so I didn't tackle it early. Once I started to play with some small examples it was fairly obvious what the solution was. My solution to F was ugly and I really shouldn't have worked on it so early (see next question).

Q: What were the reasons for doing F immediately after C?

A: I actually thought that a much simpler algorithm worked for F so I coded that first. It failed horribly but I kept working on it and eventually got a better algorithm working. I was scared by D and E (though I shouldn't have been) so I didn't work on them until the end.

Q: You were the only one to get C on the first submission, and nobody got D on their first try. What do you think are the reasons for this?

A: Many people probably tried an O(N^2) algorithm on C or D which will take too much time. Even if they did have an O(N) or O(N log N) solution the time limits were still tight so they might have had to do some constant factor optimization. My first wrong answer on D was because I used a Java ArrayList. I had to recode it as an array based linked list to make it run in time even though both solutions were O(N) time complexity.

Q: Anything to add?

A: One thing I need to learn from this contest is to try small examples before diving into problems. I should have solved E much earlier but I didn't even work on it until I had solved the other 5. Also if I had spent time doing examples for F I wouldn't have coded my first incorrect submission.