Programming Olympiads, a look from NSU. Article 4 - how the tour goes

    Continued immersion in the world of sports programming is already on your screens. Now it will be the most yummy. I used to beat around the bush, now it's time to get down to the gist. Let's see how one of the tours goes, which lasts during these 5 hours of excitement and creativity. Today will be a lot of fun.

    For those to whom this article will be the first of a series:

    The first article is about drafting tasks.
    The second article is about testing systems.
    The third article is about the work of the organizing committee.



    Vsesib tour usually begins with a trial tour. The usual two tasks, unchanged for several years in this capacity, are the sum of numbers and Crazy Jury. This is done exactly so that the teams get used to the place, to the software settings and all that. Some teams are very happy and decide to trick the system by writing algorithm templates instead of a probe. In vain, in vain. Usually, at these olympiads, before the full-time round itself, a cyclic shift of the teams at the computers is carried out and all the templates remain to the opponents. More precisely, they do not remain, for the folders are prudently cleaned by the organizing committee.

    Also the purpose of the trial tour is to check the operability of all mechanisms of the Olympiad. Actually, the first couple of times in 8 All-Ukrainian ujudge lay down exactly during the qualifier. Already inspired not the best feelings, but more on that later.

    The jury usually meets half an hour or an hour before the tour. Again, all tasks are discerned and all conditions for horror-horror-horror are run over by the eyes. Here the most interesting thing happens when there are questions, but there is no one answering them. So, in the last launch of Vsesib on a research problem, a reasonable question arose for Misha Dyakov, whether his geometric primitives are closed (the condition of the problem for those interested ). Everything would be fine, only they asked Misha on the phone, of course, after waking him. After about an hour, Misha appeared at the jury’s location and, with the loud laughter of all members of the panel of judges, described his entire gamut of feelings at that moment.

    About 15 minutes before the start of the tour, the teams are allowed into computers. Already you can fill in the templates, the benefit of a login for the team is constant for the entire tournament. About 10 minutes after that, the organizing committee delivers sealed envelopes with tasks for this tour. Everyone is waiting for the go-ahead from the jury room (where the entrance and even the eyes of the participants are strictly prohibited). A wave of a checkered flag - envelopes are torn, fast encoders sit down quickly to code, and the jury begins a fun time. Already a minute on the second questions of the jury begin through the test system. 50 percent are eliminated with the comment “No comment”. Often, even the answer to a simple question from the team is put to a vote, since it may be necessary to amend the condition of the problem. But there are also funny moments. So, at one of the olympiads (it seems to be in the FRI), someone asked a question whether it is necessary to accompany the program source with comments. Interesting, how the participant reacted to the reasonable answer “No comment” and whether he began to remove the documented pieces of code. This is not known to science. But science knows the jury’s funny stupor, when one of the teams in the full-time round didn’t know what the torus was and what it was eaten with (and usually eaten with tea in the form of a bagel). The entire mental apparatus was directed at how to explain this. Someone climbed into the wiki. Someone began to portray a torus in paint. Sasha Kirov was quicker than anyone and ran away with an analog piece of paper, explaining a piece of geometry to an unlucky team. Kurgan mathematicians are never lost. what is a torus and what does it eat with (and usually eat with tea in the form of a bagel). The entire mental apparatus was directed at how to explain this. Someone climbed into the wiki. Someone began to portray a torus in paint. Sasha Kirov was quicker than anyone and ran away with an analog piece of paper, explaining a piece of geometry to an unlucky team. Kurgan mathematicians are never lost. what is a torus and what does it eat with (and usually eat with tea in the form of a bagel). The entire mental apparatus was directed at how to explain this. Someone climbed into the wiki. Someone began to portray a torus in paint. Sasha Kirov was quicker than anyone and ran away with an analog piece of paper, explaining a piece of geometry to an unlucky team. Kurgan mathematicians are never lost.

    All is well if nothing breaks. But nothing can simply not break. The best thing is if the task is broken. Suddenly, an incorrect test fell that did not meet the conditions, or the format of the input file was slightly not followed. First, the jury receives streams of anger from all the teams whose de facto right decision is being poured. These threads are then redirected to the person responsible for the tests. If everything is bad and everything is broken, then the test is removed, and all decisions are sent for retesting. The teams, of course, are not very happy, but everyone has the right to make a mistake. So sometimes someone immediately gets five pluses for the task. Well, at least for the extra pluses, penalty points are not awarded.

    And the worst thing is when something happens to the testing system. Again, remember our poor, poor ujudge. A system with a pretty face, an intrusive ajax interspersion and a well-designed architecture. She could not cope with the load only. At the semi-finals of the school Olympiad, when this arose for the first time, we did not even know what to sin on. On the same day, the central uni router and 3 teams from the School of Physics and Mathematics departed, writing tasks later than the rest of the teams (in fact, they only needed the number of tasks in order to pass the selection) passed the tasks through the genius of technical thought - a flash drive. Misha and I got so into the taste that in the audience of the participants we drew a browser window on the board and there in a timely manner we displayed the number of completed tasks. Such is the server emulation.

    On the face-to-face tour, everything was much sadder. The tester knocked down, got up through the efforts of Andrei, who was writing another patch, or removing him from a coma, and again went to bed under the pressure of a heap of assigned tasks. There was even a joke that ujudge is a unique system, since it works on the muscular strength of the author. So here. Remember that our client scales well. The jury has a whole terminal class, so a few more tester and web muzzle instances were raised. In order to protect computers from encroachment, epic signs “machine tests” and “machine web server” were hung on them. I personally, alas, have not seen them.

    The extensive path did not give the desired result. As it turned out, the load balancer itself provided a delicious drawdown in performance. The pearl shaman Sasha Fenster in 5 minutes threw a random balancing script on his knee. It became a little better, the system even lasted about 5 minutes. Participants had already begun to boil. I, using arrogance and an administrative resource, bombarded my acquaintances from the jury with ICQ with the questions “when?” And “cagdilla?”, The other teams were not bored either. Someone wholeheartedly wrote an unforgettable question to the jury, “Thanks to the jury for the truly enchanting performance of the testing system.” Tatyana Viktorovna answered this without any hesitation, “Good word and nice to the cat =)” That's what they decided.

    In the meantime, the jury continued the show. Andrew tried to raise his system. At the same time, they wanted to try to lift the old system, but the pearl on the server of our faculty was updated, and the system did not keep up with the passage of time. As a result, by night, Misha Kalugin and Alexei Romanenko kicked her, but another testing system was chosen by a jury vote. About this, however, later. While all this bedlam was happening, Andrei Lopatin in the corner on his laptop from the flash drive deployed his own testing system, drove all the tests there, checked the solutions, corrected the tests and quietly said that there is a testing system. As a result, in a completely force majeure decision, 3 hours after the start time of the tour, this tour still began. Well, later on, thank God, without such problems. The second round was also written on the Lopatin system.

    During the second round, the jury also had little boredom. Lopatin, Stankevich and Gozman (each about four of my teams in their minds) decided to play Vsesib. We sat down in one laptop, with a snort and jokes, they began to decide the tour. As a result - in 1.5 hours out of the prescribed 5 round was taken. The jury's decisions were corrected and improved, and a couple of bugs were found in the tests. Here it is, the power of the mind.

    Well, with what happens during the first part of the tour, we figured out. In the end, the fun begins. After 4 out of 5 hours of the tour, the rating is frozen. Thus, you can only know how much you yourself have decided at the moment. Some teams cunningly use this feature, but in this I will tell in an article on team play. If the tour went without delay, then 5 hours after the start it all ends and the teams go to rest. But if there were any hiccups, the jury can add a few minutes to the round, which can become decisive (so our team once at the expense of 20 bonus minutes managed to wrest the 3rd place on the university in the qualifying round, when I wrote in the wild boom 5 minutes before the preliminary finish algorithm).

    This is usually followed by a short pause (for example - to eat) and followed by a discussion of tasks. At first - unofficial. The teams tell each other on which dirty hacks they dragged their decision and why the task falls on the 9th test and how it could be circumvented if they were somewhat smarter in childhood. And then a great and powerful jury enters the stage. Each tells one or two tasks, participants ask smart questions, get no less smart answers. As it should be, although sometimes the conversation takes quite far and the discussion has to be interrupted.

    Fun stuff is also often at the parsing. To begin with, a person can go out to tell not his task. On Vsesib, of course, not so, but on some school round (almost the semi-finals of the All-Russian team) it was. Only three people from the jury were left for analysis: me, Misha Gorodilov and Vanya Kornienko. Well, we scattered 9 tasks between each other and started talking. The first failure occurred at Misha. For about an hour, he explained to the coach of one team how to write a quick analogue of linked lists on arrays in Pascal. The children understood in about 10 minutes, and the remaining 50 minutes, Misha and the coach tried to find mutual understanding in terminology. It is good that such a delay took place, because Vanya and I found one problem whose solution neither I nor he knew. We had only a rough scheme of the algorithm. In the end, we as glorious graduates of the Kurgan mathematical school, in half an hour they were able to independently derive this algorithm and prove its complexity. And then it was determined on “rock-paper-scissors” who would go to tell him, afraid to repeat the experience of Misha, who was suffering at that time at the blackboard.

    It is sometimes unexpected to see the author of a task. At the All-Siberian Olympiads, the "old people" even sometimes have something like a competition - to guess who wrote what task. So, another funny story is connected with this. Misha Kalugin, after leaving the jury, began to earn extra money during the tours as a photographer. There is a DSLR, hands, it seems, too, so why not walk and click. Responsibility for writing tasks was not removed from him. So here. Debriefing, goes to the board Michael. Voice from Tomsk: “Damn, they even have a photographer solve problems!” Curtain.

    This is how the typical All-Siberian tour goes. Not without joys and happiness. But all of the above in one run is rarely included, otherwise the Open Cup of KVN of our university would fade next to the All-Siberian Olympiad.

    For the good memories I have given, I want to say thanks to Misha Kalugin, Kolya Kurtov, Tola Petrov, Misha Gorodilov, Sasha Kirov, Natasha Popova and a little to myself.

    In the next series, I will return to the familiar role of a participant, coder, player and tell you how training and tours for teams go.

    Also popular now: