Petr takes the lead
05.05.06 9:00 PM


By Kawigi
TopCoder Member

It was time to prepare for the final round of the TopCoder Open. Everything was on the line. The clear favorites among the spectators were tomek and Petr, although several others definitely had a good chance. Perhaps now was the time for Petr to avenge his loss to tomek and Eryx's team in ICPC 2003. Perhaps it was a time for tomek to show once and for all that he hasn't lost his touch. Perhaps it's misof's turn to dominate the tournament. Only the next few hours would tell.

As the competitors prepared for the final round of the TopCoder Open, it's funny to watch all the spectators and those who have been previously eliminated watching the monitors of the finalists as they simply type in templates and macros and whatnot. There was a bit of action going on around John Dethridge's monitor, and it turned out that he had messed up his for loop macros.

He typed in a typical FORI, FORJ and FORK macro, except that he used the wrong letters in all but the FORI version. After typing the macros in wrong, he tested a bit with the FORI macro, and finally tested the FORJ macro with it as well. He got a compiler error and figured out what he messed up, and fixed it for cheers from the peanut gallery. Then he wrote next to the fixed macros "I'm glad I found that". Of course, he deleted the comment afterwards, or else the code after the macros when he used them would be commented out (and we can't expect him to put stuff on a different line, after all).

The coding phase started with ntrefz's Mortal Kombat voice saying, "The Coding Phase of the 2006 TopCoder Open Final Round is beginning. Fight!!!"

As the coding phase started, everyone started out on the easy problem. Other strategies had basically completely failed so far in the tournament, and this 250 was somewhat more straightforward to figure out than the ones in the semifinals. tomek submitted pretty quickly for 244.55 points, and Petr followed by just a few minutes. With little delay, misof and fuwenjie also added their submissions, followed by andrewzta and John Dethridge. John Dethridge didn't open another problem for a couple minutes, and he quickly resubmitted and opens the 1000.

cyfra and natori also eventually submit the 250 and everyone (except John Dethridge) is simultaneously working on the 500.

All of a sudden, fuwenjie surprised everyone by being the first to submit the 500. tomek and Petr submitted quickly afterwards, and then tomek resubmitted.

natori joins the 500 club and things get quiet for a few minutes.

With a full 26 minutes left in the contest, tomek submits a solution to the 1000 and Petr followed within 10 seconds. In the remaining time, cyfra finished his 500, Petr resubmitted his 500, and natori and fuwenjie surprised the field by submitting high-scoring solutions to the 1000.

After the coding phase ended, the spectators crowded around the leader board to watch the challenge phase, as the challenge phases have been increasingly exciting throughout the tournament. Before the challenge phase, the standings looked like this:

HandlePoints
natori1253.89
tomek1240.71
Petr1163.77
fuwenjie1078.96
John Dethridge505.18
cyfra439.86
misof236.46
andrewzta232.91


The competitors were ready to impress, and Petr in particular came to entertain. The challenge phase began and the Quake 3 Arena / Unreal Tournament voice in my head began to announce the action. Petr killed John Dethridge's 500 in 10 seconds.

First Blood!!!

After another 10 seconds, fuwenjie's 500 was similarly fragged.

Double Kill! You have taken the lead!

With another 10 seconds, Petr attempted a third challenge, but failed on natori's 500.

natori has ended Petr's killing spree. You have lost the lead.

Almost immediately, cyfra lost his 500 to Petr's challenging finger as well.

You have taken the lead!

After another 2 minutes, fuwenjie successfully challenged natori's 1000-pointer and moves into 3rd place. After another minute and a half, he repeated the action on tomek's 1000 and the underdog replaced tomek in 2nd place on the standings.

Soon after that, we reached the half-way point of the challenge phase. At the six-minute mark, and for most of the rest of the challenge phase, all eyes were looking at the two remaining 1000's and tomek's 500 (possibly because the code was so impossibly long that they just hadn't finished reading it, possibly because it was the other solution that could fall the hardest). Petr took a shot and failed against tomek's 500.

Right before the end, natori made failed challenges against both of the remaining 1000-pointers, correctly predicting that the loss of 50 points wouldn't affect his final rank.

After the challenge phase ended, TopCoder kept us waiting for a bit while they prepared the results for the component competitions. The results came up one component at a time, starting with the dev competition, and after the results of the third component came up, the crowd applauded sindu 's brilliant win.

The same operation followed for the Design finals, and nicka81 looked like the favorite until the results of the very last component were shown. Pops won the tournament with an outstanding score on the last two components.

Finally, we got to watch the results of the algorithm final system tests come in. With anticipation, we sweat while the hourglasses formed over each remaining solution, waiting to see what would happen.

Starting at the bottom of the list, John Dethridge, cyfra, andrewzta and misof each passed system tests on their 250s. The cheers got louder as natori and tomek both passed their remaining two problems. The results of the entire tournament now rested on the results of the final two competitors. The difference between victory and defeat for each of them as well as tomek rested in the 1000-point problems which they allegedly solved.

The results for fuwenjie came up and he failed his 1000. Keeping his 250, he fell to fourth behind natori and tomek. Time seemed to slow to a crawl as we waited to see the results of Petr's solutions, all three of which were still standing after the challenge phase.

Vengeance!!!

The crowd clapped and cheered as Petr passed all three problems. What an amazing performance - the same kind of performance we saw in his best matches, but combined with the difficulty, pressure, and all-star competition of the World Finals. tomek kept his cool as he watched his name stay in the second slot, probably already thinking about next year.

All the winners and some of the sponsors got situated for a short press conference, and answered a few short questions. The question asked of Petr seemed a little strange - it was something along the lines of, "What was your strategy that helped you to win?" He replied just like I would have, which was that his strategy was to solve the hardest problem correctly. I can't think of a better way to win by such a large margin.

Petr was also asked to say something to the community and to his friends and family at home, whether in English or in Russian. He started by instructing all of us on how to pronounce his name (it sounded something like "Perter" to me). Then he said a few things in Russian, which prompted smiles and chuckles from all those who understood. tomek and cyfra appeared to understand what he was saying as well, and it was clear that there were no negative feelings between the competitors at the end of the day, and that everyone enjoyed the event as a whole. Congratulations to the winners, the finalists, and everyone else that participated and competed.


AMD

NSA

VeriSign

UBS