### ArtDitel's blog

By ArtDitel, history, 4 years ago, ,

Hi all, we participated in challenge24 as aimfund team (zeliboba, artditel,Zhukov_Dmitry), took 6th place and here is my writeup. We really love challenge24 and 24-hour format, thank you guys for making it, and we are waiting for the next year. But I should say that writeup will be mostly negative because of overall impression.

UPD Psyho's 1st place writeup with solutions: http://codeforces.com/blog/entry/19023

.

The first negative moment was not the fact of a postpone, but the unknowing of exact schedule and orgs silence. We think it happened because of sponsor issue.

Next strange stage was the onsite network test and team placement. There were no seating chart so we picked the random room with 3/5 russian teams. There were no test targets too, we had neither server ip nor checklist, the only thing we did was setting switch and checking power adapters.

At the contest day we came in the same room and waited for the start. It was really unexpected to find only 6 tasks in problemset, we thought more would come, but it didn't. By the way, submit interface didn't work for the first 2-3 hours.

A, D and E were pretty straightforward tasks and almost every team solved them. Tests for 'E' were broken, and it took 2-3 hours to fix them.

F task meant to be online game with all teams competing each other in 20 rounds. But what we found was: incomplete statement, it looked like someone forgot to include 2 or 3 pages, and offline server, which went online only after 6-10 hours of competition. Next 6-8 hours jury was trying to fix it and finally they changed literally the whole tasks 4 hours before the end! I think it was one of the worst moments of the contest. Last thing to mention is the scores, which appeared 3-4 hours after the round end.

C task was the best one, but it wasn't enough to save the contest. In this task you have assembly language with: in, out, mov, rmov, jmp, jz, jnz, jneg, add, sub, div, xor, mul. You were given assembly compiler, binary runner and 3 binaries (without asm code, so you should decompile or reverse them somehow) and the task was to optimize the size and run-time of these binaries. Sounds tasty. We started optimising first binary, because it had no input, only output. Overall idea was to optimize the algorithm and then make constant micro optimisations. For example in second binary you should implement the sorting algo.

But there was a problem too: the scoring system. You could spend hours writing good solution (nlogn head-sort or merge-sort), optimize initial binary by ten times and get... ONE point of 400. It happened because of strange formula and unknowing what input data is used by the jury. It is a big array or small? How many tests do they have? We implemented 4 different algorithms, combined them and got 50 points only.

# simple insertion sort
mov 0, array_ptr
in 4
jz 4, end
rmov 4, *0

mov 8, 0
mov 12, 8
sub 12, four
swap_loop:
mov 4, *12
jz 4, swap_end
sub 4, *8
jneg 4, swap_go
jmp swap_end
swap_go:
mov 4, *12
mov 16, *8
rmov 16, *12
rmov 4, *8
sub 12, four
sub 8, four
jmp swap_loop
swap_end:

end:
mov 0, array_ptr
print_loop:
mov 4,*0
jz 4, 0
out 4
jmp print_loop

four:
dw 4
array_ptr:
dw array
zero:
dw 0
array:


B task was the worst one. It's a task with a physical construction with a video stream of it. You controll the fan that moves around the field with ping-pong ball on it, and your target is to lead the ball into the hole. Your team have 16 attempts: 4 unrated, 4 without obstacles, 8 with them. One ball will cost you around 100 points, it's a difference between 4th, 5th and 6th places.

I think jury expected that someone will use video recognition but no one did. All teams just watched the video and played with a keyboard. And every team did almost the same thing every round, so the score was mostly the matter of luck and agility.

I understand how difficult it is to make such an event and I want to participate in the next ch24, so I hope that jury will look at this writeup and will try to avoid/overcome all mentioned issues in the future.

P.S. And thanks for massage, it's really great feature for such event ;) And here you can find photos

• +199

 » 4 years ago, # |   +127 Where is aimfund round?
 » 4 years ago, # |   +21 I should add that problem A had an incorrect sample output and the second sample tests was twice the same test case.In C, I implemented quicksort (recursion = pain) and the initial, unoptimised implementation got around 20+ points (extrapolated from final scores; it seems the "real score" that depended on the best submission was proportional to the "submission score" that didn't depend on that), 50 points after optimising. We didn't have a problem with that. The real problem is that the optimal solution was to guess (or extract from the jury) that there's just one test for each subtask, spend a gorillion submits trying to guess that test, and then write a program that prints the answer. For C3, it was a gold mine.
 » 4 years ago, # |   +3 How prove solution for task D?
•  » » 4 years ago, # ^ |   +15 So what's the reason to downvote this post?
 » 4 years ago, # | ← Rev. 2 →   0 Do you think there is some connection between the fact that the finals had to be moved two months forward, and the quality of the problems this year? :)
•  » » 4 years ago, # ^ |   0 Probably. One of the e-mails mentioned a "new task writer team" along with the delay.
•  » » 4 years ago, # ^ |   +34 AFAIK, there are two separate teams: the organization and the task-writing team. The organization changes every year, while the task-writing teams rotates every few years. This was their first year, so I'd expect (and hope) that each of the following years is going to be better. And don't ask me, why they change the whole team. I have no clue and this doesn't make too much sense. My wild guess is that the reason for moving the date was that the venue was suddenly unavailable (or maybe also lack of sponsors too?). Considering that probably most of the problems were prepared the night before, I don't think that changing the date would have any effect on the quality of the tasks ;)
•  » » » 4 years ago, # ^ |   +21 You are right, there were these two separate, and independent changes this year. There are a few minor details to be refined.The organization (the operative side) does not fully change every year, but it's true that most of those guys are there only for 1 or 2 years, with some rare exceptions.The task writer team is a different story. I was part of the previous team; we did our first season as taskwriters in 2010 and did our last in 2014. There were some guys leaving in 2010, and we got some new guys joining in the last 2 years. Replacing the whole team is obviously not a good idea, and this was not our intention. It was the result of an unlucky combination of circumstances that this has happened. Also please note that preparing a challenge24 round changed a lot over time: the average finalists of nowdays is more skilled than we were in the mid 2000s. Just compare a 2013 or 2014 EC or finals to the ones before 2006 (they are available in the archives on ch24.org). It literally takes months to prepare the problem set of an EC or finals properly, so it's probalby not realistic to expect task writers to keep doing that for decades — thus the rotation is what we should consider normal.
•  » » » » 4 years ago, # ^ |   +5 Just to make things, I'm fully aware that it takes a lot of time to prepare good set of tasks. Especially hardware-related problems (like Ping-Pong or Ball from previous year) are huge time sink. At the same time, some tasks don't. The organizers itself made it clear that some tasks were prepared a night before. And well, one of them wasn't finished on time (Carnival Shootout).FYI, few years ago I made a set of ~10 optimization tasks for 24h onsite contest (Imagine Cup had Algorithms category long time ago), so I have been on the other side of the barricade too.My biggest grief was that suddenly whole team was changed. You could literally take the problemsets from 2014 (or 2013) and 2015, shuffle the tasks between those years and you would end with two superb contests. It's bad for the contest's PR if it has very uneven level.