In Flims, the finalists of SOI 2020 had a week of training and fun from 28 July to 4 August. After half a year of quarantine with online trainings, it seems everyone enjoyed meeting again in a camp and solve some programming tasks together. The camp was organized by SOI with generous support by the municipality of Flims and the local school.
Sunday (Lukas, Josia)
We arrived at about half past three p.m. to start solving theoretical tasks in small groups while getting to know the small town of Flims in Graubünden. The evening then continued with the visit of an luxurious restaurant with accordingly excellent food on offer, for which we might have been slightly underdressed.
Monday (Alberts, Mathieu)
In the morning, we ate breakfast at the hotel. The food was very good. The walk to the school building where we had lectures took about 15 minutes. The lectures on trees and DFS ordering were very interesting. I didn’t have time to implement any task as I was invited to lunch. It was rösti in the school kitchen.
In the afternoon, we had a lecture from Johannes about how to analyze the running time of an algorithm. Knowing before implementing it that what seemed to be an “amazing idea” will, in fact, end up being too slow, enables to save up quite a lot of time. This was a topic that had already been covered in previous workshops, but this time, we digged deeper into the mathematical concepts behind it.
We ate pasta with different kinds of sauces for dinner. After that we played some games on the school’s outdoor sport facilities, up until it was too dark to see anything. Then, we went back to the hotel for some well-earned rest.
Tuesday (Joël, Tobias)
The day started with sports: I had to run down in order to get to the school in time – I decided to ignore the alarm and sleep a bit longer. Perfectly fine for a programmer. It turned out I wasn’t the only one being late so I didn’t miss that much. The topic for the morning in the advanced track was symbolic solving – this basically just means solving a problem. As we helped some scientists to measure some temperatures around an islands, we learned how to look at problems graphically and to solve them using observations. After having solved this task, Timon sadly spoiled the solution for another nice task, but I liked solving it anyways. Then we had lunch. We strengthened ourselves to be ready for the climbing park in the afternoon.
Using our excellent ability to parse signs, we found the climbing park “Prau la Selva Flims”. It features six traditional routes with varying difficulties. In addition, we could enjoy two very long zip-line rides as well as a free-fall tower. But the hard routes turned out to be longer and harder than expected and at some point I found myself hanging in the air, my harness completely knotted with the ropes, waiting for some instructor to tell me what to do. After some time, I managed to rescue myself following the commands of the instructor. It turned out that this was the second-hardest part of the park and I’m proud that I managed to do the hardest part in the intended way without falling.
After that, we ended the day in a local pizzeria, although that description only encompasses about two thirds of the consumed food, as some had salad or pasta for dinner. For the rest of the evening, we played some Tichu, but sadly, a card fell into the food. After a surprising comeback, the day finally came to an end.
Wednesday (Ema, Jonas)
On Wednesday we had the option to go on a hike, this hike was made more interesting by the heavy rain and the thunderstorm.
The other group (everyone except Joël and some leaders) enjoyed a math lecture about properties of permutations by Stefanie. Afterwards, Bibin taught us how the RMQ and LCA algorithms work. For lunch, some ordered food and others made fajitas. Then, after some coding, we participated in a Codeforces competition. The first group missed this contest by the first few minutes. After the solution presentation of the contest, everyone had fajitas, a trend that did not end until Friday. For Elena, who would arrive later in the evening we saved some fajitas (which was completely pointless because we had enough anyways). Tobias and Jonas unsuccessfully tried to solve a functional equation for about 5.5 hours. Fortunately, they ended up solving it on the following day.
Until 00:53:45am, Ema was debugging her implementation of LCA using RMQ.
Thursday (Elena, Priska)
After arriving a few minutes too late in the school due to a very delicious breakfast in the hotel and a few additional minutes of sleep, we learned about Advanced C++ Programming by Johannes. Then we had a contest for 2 hours with three interesting tasks.
At noon we had rice and curry and a few fajitas from the evening before. We were planning to hike to the Cauma Lake and go swimming in the afternoon, but the weather forecast was not in our favor. So, we had some free time after lunch to enjoy the last hours of sun before the rain. Almost everyone went outside to play Ultimate Frisbee and after half an hour the rest, having finished their Tichu joined as well. After one and a half hours of running and lots of fun (btw, we won) we went back inside and discussed the contest tasks. There were some spontaneous seminars by Stefanie and Timon, where we learned about Geometric Group Theory and the Ping-Pong Lemma.
For dinner we had Spätzli with cheese and enjoyed the rest of the evening with some games and thought-provoking discussions.
Friday (Lukas, Josia)
On Friday, sadly the last full day of this camp, we discussed deque optimizations as well as other dynamic programming topics. The newly acquired knowledge was then put to a test in a four hour long contest in the afternoon, which was thereafter thoroughly discussed.
Before a long night of games, we could strengthen ourselves again with some delicious schnitzel and salad for dinner. The rest of the evening debugging or solving functional equations, playing Tichu other games. At around midnight, a large group started playing a vampire variant of werewolf until late into the night.