According to the schedule, yesterday , the day before yesterday, the last day of the VK Cup 2012 final was held, and I had the opportunity to share my impressions of the past event.
I am writing to a greater degree from myself and on behalf of the Codeforces project, although I managed to communicate with the participants, carefully read all the comments - so, probably, I will also express the general opinion somewhere. ')
The VK Cup 2012 programming championship was conceived as a useful and interesting event for young programmers, and judging by the reviews, we managed to make it so. In the championship rules, an unusual item “age not less than 14 and not more than 23 full years at the time of registration” was listed. In this way it was possible to break out of the circle of professional, experienced participants, to make a competition for schoolchildren and students. For example, among the finals, many participated in such an event for the first time.
Registration started at the end of February and pretty quickly beat our expectations in terms of the number of participants. At the time of its completion, almost 6,000 registrations were recorded from ~ 90 countries and ~ 750 cities. At the same time, some experienced community members expressed their <ph> age-limiting rule. You can understand them :)
The venue for the selection and the final of the championship was Codeforces . VKontakte employees made up the majority of the jury, the Codeforces team, veterans of the championships from the Saratov State University, also worked on the jury.
The selection grid consisted of qualifying and three qualifying rounds. Unusual in the rules were two additional Wild Card rounds, designed to give a second chance to pass to the next round to those who could not do it on the first attempt.
The first of these rounds was prepared by the notorious Masha Nicolette Mikhailova, a great lover of exotic and esoteric programming languages. It was the Surprise Language Round - an unusual form of competition, when participants learn the language in which they can complete tasks only with the start of the round. The language of the first Wilde Card round was chosen unusual factor. As a result, the speed participants understood their stack paradigm, solving simple problems. For example, winger code for one of the tasks (addition of numbers in an arbitrary number system):
USING: io kernel math math.parser sequences locals unicode.case arrays ; IN: g :: fromdig ( c -- i ) c CHAR: 9 <= [ c CHAR: 0 - ] [ c CHAR: A - 10 + ] if ; :: todig ( i -- c ) i 9 <= [ i CHAR: 0 + ] [ i CHAR: A + 10 - ] if ; :: toint ( string radix -- int ) string0 [| nc | n radix * c fromdig + ] reduce ; :: fromint ( int radix -- string ) "" int [| str int | str int radix mod todig prefix int radix /i dup zero? not ] loop drop ; readln string>number readln string>number [| n radix | 0 n [ readln radix toint + ] times radix fromint print ] call
It turned out unusual and fun, most liked it. Many thanks, Nicolette ! Here are the full results of the round , and you can try your hand at solving these problems now .
The second wild card round went on for a week. The high result in it made it possible to jump into the last car of the final from the qualifying online rounds, so that its participants tried in earnest. By the way, the idea of ​​the task for this round was again proposed by Nicolette, and the Codeforces team prepared the entire infrastructure. The round went a whole week and it was necessary to pack rectangles in a given one, maximizing the sly objective function . The participants liked the task, looking ahead, I will note that the winner of the championship passed to Round 3 through this Wild Card.
Qualifications and qualifying rounds were held according to the Codeforces rules familiar to participants. Employees of VKontakte, Codeforces and Saratov State University worked on the tasks. Nicolette edited the conditions. I must say that there were no heavy files with conditions or tasks, everything went to the mutual pleasure of the participants and the jury. Here are the winners of the stages:
According to the results of round 3, a list of 50 finalists was determined. The list of countries participating in the final - Russia, China, Japan, Belarus, Indonesia, Ukraine, Poland, Taiwan (participants from there insisted on the status of a country), the USA, Germany, Hong Kong (and they insisted), India. Characteristically, quite a few finalists turned out to be from Asia.
Preparations for the championship finals went a few months. It turned out that bringing a group of foreign minors to Russia is not so easy. The jury team conducted preparations not only for the final round, but also for the unofficial game competition CodeRaces, the details of which were not fully disclosed to the participants beforehand.
On July 13, in the very center of St. Petersburg, the opening of the championship took place at the Kempinski Hotel, Moika 22. Participants were presented to each other through slide shows from their informal photos. The presenters called some interesting facts about them, for example: “When asked about the city of their dreams, neex.emil called Ankh-Morpork”, “SergeyRogulenko wrote his first line of code at 6 years old!”
The finalists were given small but pleasant souvenirs. Ilya Perekopsky (Vice-President of VKontakte), I (Mikhail Mirzayanov, Head of Codeforces and a representative of SSU) welcomed the participants with short but ardent speeches. A little later, in some miraculous way, having solved the difficulties with flights from Europe, Pavel Durov appeared in the hall. In his welcoming speech, he announced an increase in the prize fund, which disrupted the applause of the hall. Thus, in a couple of days, the guys had to fight for:
1st place - $ 30,000;
2nd place - $ 20,000;
3rd place - $ 10,000;
4-5 place - $ 2000;
6-10 place - $ 1000.
On the same day, everyone was able to enjoy a walk along the rivers and canals of St. Petersburg. I wonder why our guides like the sad side of the story so much? At the mention of Kutuzov, our guide instantly told the circumstances of his death. We found out who was sitting in the "Crosses" and all about the deaths in the royal family. I wonder how foreigners can hear all this? In fact, I wanted something more festive!
Guide VKontakte with might and main to the finalists. Paul shared some plans, listened to the impressions of the guys. The trip lasted quite a long time, but there were no bored ones.
The next day was mainly devoted to the unofficial gaming event CodeRaces. Participants were asked to write artificial intelligence for machines that race around the field, collecting flags, firing off tires and burning with a blue flame when their hit point ends. Additional entertainment brought two obstacles to the field and service stations, where you can heal. Participants enthusiastically three and a half hours kodili bots. You could use Pascal, C ++ or Java. Most chose C ++, but Pascal may have been completely deprived of attention. To hell with it :) By the way, a much wider list of languages ​​is available at the competition itself: C / C ++, Pascal, Java, C #, Python, Ruby, PHP, OCaml, Haskell, Perl, Scala.
In the evening of the same day, a show took place in the banquet hall of the hotel, where the winner was determined during the tournament. All games of the tournament were shown on the big screen, and the participants were expressively sick. It was clearly seen that the closer to the final, the clever strategies remain. It's funny that many participants learned to go around obstacles, but everyone smashed into the walls. Four strategies reached the final: yeputons (Russia), rudradevbasak (India), tourist (Belarus), iwiwi (Japan). Yegor Suvorov (yeputons) was in the first place before the final, but in the final against his strongest rivals his strategy let him down and rudradevbasak took the first place. Below you can watch a video with a record of one of the three finals. The top three places received prizes, and the energy boost from participation was all.
On this day, it was not without Russian-Chinese flavor. One of the finalists from the Celestial Empire said with frustration that on Nevsky some villains took away his camera. He tried to score at all events and go to the police, but VKontakte decided to diplomatically hush up the situation, compensating the participant for the loss. By the way, he did not lose his head and wrote a non-sickly question about the model (I don’t remember the exact numbers). By the way, when he was later bought and given a camera, he said that he had mixed up and meant 5D Mark, but here he was offered to go to the police anyway. You will not believe: he did not go :)
The next day was entirely devoted to the main event - the final round of the VK Cup 2012. At 11:00 the head start was given at VKontakte. The first (in the 15th minute) task E passed the well-known tourist (Gennady Korotkevich, Belarus), showing the other participants which of the tasks is simpler. They were followed by theycallhimtom (USA), tmt514 (Hong Kong). A participant from China, s-quark, first discovered task C, he passed it in the 21st minute. Further, a large number of participants began to pass these two tasks, although soon vlad89 (Vlad Simonenko, Ukraine) opened B. These tasks turned out to be the most solvable tasks of the final. Our compatriots couldn’t show a quick start - natalia (Natalya Bondarenko, Russia) at the start was the leader among ours at the start. In the 29th minute the task C. Solving the competition showed that most of the participants sent out three tasks, and in the group with four tasks was Most are guys from Asia. 15 minutes before the end, Gennady Korotkevich sent out the most difficult task A, his solution passed preliminary testing and by the end of the coding he headed the standings. He was followed by sevenkplus and s-quark from China. However, the final testing on the full test suite was ahead, so it was too early to draw any conclusions. Toward the end of the competition, William Poucher, Executive Director of ACM-ICPC (Student Team Programming World Championship), visited the final round. Possessing the weightiest authority and amazing charisma, he brightened up the final, talking to the participants and taking pictures with them.
The guys went to lunch, and the jury tested all the solutions and prepared a presentation to demonstrate the final results. Already here it became clear that during the final participants did not ask any questions about the tasks. As an organizer of such events with experience, I can say that this is an exceptional case. A thought flashed across my head - overdone when working on cleanliness of conditions :)
The closing took place in the same wonderful hall of the Kempenski hotel, where other evenings were held. For some time, the participants enjoyed a delicious dinner, live music, and the excitement of whether their solutions passed all tests or not. The closing was twice world champion in programming, VKontakte developer Andrei Lopatin. I even did not expect a bit that he would succeed so well. Well done, Andrew! The speech was held by William Poucher, then the results were revealed in the form of a short presentation. It was funny to hear the simultaneous sigh of disappointment of the Russian-speaking audience and the joy of the Chinese, when Gennady's decision on task A turned out to be wrong. He moved to the 3rd line, and the first two participants were citizens of China. Pavel Durov presented the top ten finalists with diplomas of winners and beautiful HP Envy 14 Specter notebooks to the applause of the entire audience, and the top three were given symbolic checks. The champion received a gilded reward in the form of a massive star on a stand with the inscription VK Cup 2012. The hall applauded the winners for a very long time.
So, here are the winners:
sevenkplus, Peter Gu, China
s-quark, Qinshi Wang, China
tourist, Gennady Korotkevich, Belarus
dolphinigle, Irvan Jahja, Indonesia
yeputons, Yegor Suvorov, Russia
WJMZBMR, Tom Chen, China
shangjingbo, Jingbo Shang, China
vlad89, Vladislav Simonenko, Ukraine
SergeyRogulenko, Sergey Rogulenko, Russia
meret, Jakub Pachocki, Poland
Already at the conclusion of the ceremony, Andrei Lopatin stepped on the stage and thanked all the finalists, all the organizers and all those involved in the performance. He gave a special applause when he said that gift laptops would be presented to all participants of the final, and not just the top 10 of them! 4/5 audience noticeably cheered up!
At the official part of the closing was over, but many of the participants were not in a hurry to leave the rooms. A group of Russian-speaking guys remained in the hall for a long time, discussing the last event. Pavel also lingered, taking advantage of the moment, communicating with the participants. At that moment I was restoring Codeforces full-time work, so I didn’t take part in the conversation. A pity, it was fun.
The next day, it was nice to read the enthusiastic comments on the Codeforces pages. It's nice when the result is like the participants. I just give the brightest of the comments:
kelvin:
+1, it was really lucky and enjoyable to be here. Thanks for VK and Codeforces!
-XraY-:
Agree! If you are in the middle of Saint-Petersburg. My favorite part - codegame. It was very funny to watch cars, kicking each other with tires.)
winger:
Well, why the hell did I merge round3? :)
meret:
Thanks for the really great event. This was definitely one of the best onsite competitions I've been to.
cgy4ever:
Me too, VK. At the final round. I found my name-card with red handle So I want to become a red round. But unfortunately I become more 'yellow'. So it gives me a lesson: coding / thinking.
I hope that we will manage to organize VK Cup 2013 next year. Thanks to everyone who participated in both the competition and its preparation!