SOI Camp 2022

For one week 21 participants from Switzerland train together in Sarnen.

Elena Morbach
News

21 participants from Switzerland meet in Sarnen to train together for one week (12.02.2022 - 19.02.2022). Some Slovak, German and two more Swiss participants join the training online. In many lectures, contests, and other activities they sharpen their skills in algorithms and practice to apply them in challenging problems. Each day, a group of participants write about their experience.

Saturday (12.02.2022, Group 0)

After a long journey to Sarnen, in which some of us played a game called Dobble (we had to improvise some seats and ended up using suitcases for this), we formed groups for our bubbles. Our bubble had it quite easy, as we are the only girls. Our room was on the top floor, where there also was a room for playing “Töggelichaste”.

Next we broke the ice by playing some totally prepared icebreakers by Stefanie outside. The ice breaker was meant to get people to know each other. There were many participants who already participated the years before, and also some new ones. Another important thing about the icebreakers is, that the group with the highest percentage of people from our bubble won. This was really exhausting, so we were rewarded by eating in the cold. Despite the unfortunate temperature, the food came on time and was delicious.

After we all ate the food, we could finally go back inside, where some of us were taught how to play Tichu. It is really important to know how to play Tichu if you want to come to an SOI event, because it gets played all the time. This game not only challenges somebody’s idea, but also lets people collaborate with each other. This game was really successful, but some of us decided to play another game called “Werwölfle”. This is also a team game, and team collaboration is also very important at SOI. It lasted a while, so after playing the game, we went to sleep, because we knew that the next day, there would be a lot of stuff we would learn.

Sunday (13.02.2022, Group 1)

Frühstück assen wir draussen bei Gefriertemperaturen Frühstück, also die, bei denen es noch etwas übrig hatte, weil sie früh genug aufgestanden waren. (Nicht wir). Dannach wärmten wir uns auf, aber nicht mit Dehnübungen, sondern mit theoretical tasks. In der Aufgabe, die wir im Advanced/Expert track lösten, ging es darum, alle N Lichter mit N-K+1 Schaltern auszuschalten, um möglichst viel für die Umwelt zu tun.

Nach den Warmups fingen wir (der Advanced Track) mit dem eigentlichen Thema an: Graphen. In den Workshops wurde uns bereits sehr viel zu diesen nützlichen Strukturen erzählt, doch es gab noch viel Weiteres zu lernen. Beispielsweise wurde uns das Konzept von Pre- und Postorder näher gebracht. Mithilfe der Preoder kann man auch Brücken und Gelenkpunkte finden. Anschliessend hatten wir Zeit, das neu Gelernte durch viel Übung zu verinnerlichen. Nach dem Mittag wurde uns exemplarisch gezeigt, wie man abstraktere Probleme in Graphen-Probleme umwandeln kann. Beispielsweise kann man ein Sachbrett in einen Graph umwandeln, wo die Knoten den einzelenen Feldern entsprechen und die Kanten die Schachzüge zwischen verschiedenen Feldern repräsentieren.

Zu Mittag wurde ebenfalls wohl diniert; die Sonne lieferte einen gewissen Schutz vor beissender Kälte. Wohl genährt von diesem lukullischen Mahl schritten wir zurück zum Finden von Gelenkpunkten in Graphen.

Um 14:45 fing dann unser erste Practice Contest an. Wir mussten in drei Stunden vier verschiedene Graphen-Aufgaben lösen. Bei uns allen lief der Wettbewerb eigentlich gut und ich glaube er hat eigentlich allen Spass gemacht. (Ausser mir, da Johannes eineinhalb Studen lang Gegenbeispiele zu meinen immer verzweifelter werdenden Lösungen dem Grader hinzufügte).

Elias Versuche der weiteren Allemanisierung konnten im letzten Moment abgewandt werden, kein ß soll in diesem Text zu finden sein. Vivat Helvetica!

Monday (14.02.2022, Group 2)

Der Tag fing früh an, denn jemand aus unserem Zimmer hat vergessen seinen Schulwecker abzustellen. Deshalb wurden wir recht früh aus unserem erholsamen Schlaf gerissen. Jedenfalls gingen wir wie gewöhnlich frühstücken, Gott sei Dank, drinnen! Danach begannen die Warm-Ups des Tages, sowie die Einführung des heutigen Themas: DP (Dynamic Programming). In den verschiedenen Gruppen lernten wir diverse Anwendungen von DP. Wie gewöhnlich ist über das Training ist nicht viel zu erzählen, dafür aber über das Mittagessen: Wir assen traurigerweise draussen in der fürchterlichen, grausamen Kälte des Sarnen-Winters. Drakonisch mussten wir die Tische und Sitzbänke auf den Parkplatz verschieben, wo die einzigen Sonnenstrahlen schienen. Das Essen war, wie zu erwarten, gut.

Das Training ging kurz weiter, auch für Chris, worauf dann der Contest stattgefunden hat. Der Contest baute sich auf das Gelernte von heute auf (Dynamic Programming). Es war hart, aber gerecht. Der Sinn ist auch, etwas zu lernen. Im Nachhinein wurden die Lösungen präsentiert, zwei sogar von Teilnehmern. Die beste Aufgabe war “Flappy Bird”: Sie war einfach und sehr originalgetreu. Wir spielten danach extra Flappy Bird auf dem Browser, das bedeutet, wir gingen in die Konsole und ruinierten das Spiel. Der Highscore von 8239189234712740981230 (Vielleicht? Ungefähr?) bleibt ungeschlagen.

Danach stand das Abendessen vor der Tür. Wir hofften mit Geist und Blut, dass wir im Haus speisen können, und tatsächlich wir durften! Portionen Spaghetti stärkten uns für den Spieleabend. Ich spielte beim Werwölfen mit. Es war eine sehr grosse lustige und spannende Runde, aber es war gleich Zeit, dass wir ins Bett gehen wollten.

Tuesday (15.02.2022, Group 3)

Mardi. Après une (trop) courte nuit, il fallut de nouveau se remettre au travail. Nous avons juste eu le temps d’avaler le petit-déjeuner (à l’intérieur!) qu’il était déjà temps de se préparer pour l’upsolving” (résolution des tâches des tournois précédents) Nous passons donc la matinée à nous échiner sur des bugs et des problèmes de graphes et de programmation dynamique. Heureusement, grâce aux présentations des solutions des tournois des soirs précédants, nous sommes capables de nous débrouiller.

Pendant l’après-midi, changement de programme. Plutôt que d’avoir du temps libre, nous partons à une chasse épique. A la chasse aux photos, pour être précis. L’annonce d’un prix pour récompenser le groupe avec les photos les plus créatives booste notre créativité (c’est le mot). Certains groupes ont élaboré une histoire autour de leurs photos tandis que d’autres ce sont amusés à faire les photos les plus improbables possible. Les gagnants n’étaient autres que le groupe de Chris (c’est à dire Ursus, Lukas, Ferdinand, Jasmin, Lionel et Ursus).

Dans la soirée, nous avons eu l’occasion de choisir parmi trois séminaires de haute qualité, bien qu’ils ne fussent pas directement reliés à la SOI ou à la programmation compétitive. Sujets: * Combinatoire / mathématiques (by Johannes) * Quelques algorithmes/techniques en lien avec la géométrie et le traitement de textes (strings) (by Chris) * Comment mal faire de la scanline pour résoudre un problème que même Johannes ne comprend pas ! (by Stefanie) De notre avis, toutes les présentations étaient très intéressantes, et le temps passa beaucoup trop vite.

Wednesday (16.02.2022, Group 0)

Wednesday was Binary Search and Segtree Day, which is the best of the three topics we had. Disclaimer: This is not supported by everyone here, but that’s not very relevant for this blog post.

Because we were all so excited about this special day, we even woke up in time for breakfast. Breakfast was delicious and we even started the warmups on time. The warmup task was not too easy and we struggled a bit to solve it. But the solution was actually quite interesting in the end.

Soon enough we started with the lectures. We learned all about normal Segtrees (very cool 11/10), Lazy Segtrees (kinda cool 6/10), almost 2D Segtrees (pretty cool 8/10), 2D Segtrees (very not cool -1/10) and Sparse Segtrees (seem cool but TBD/10).

We then tried to solve some (you guessed it) Segtree tasks theoretically but they were very hard. With a lot of help and hints, we constructed something close to the solution, but we didn’t even want to think about the implementation. The second task was a lot easier, but the solution was still very hard to come up with. In the end it was a very cool task though. In between we played table football and it was lots of fun.

Lunch was chicken and rice (from a restaurant), but unfortunately some pieces were still a bit raw. We noticed it quickly though, and we’re all still alive, so no worries.

After lunch we had a ‘Segtree’ and Binary Search contest. Unfortunately there was only ONE SEGTREE TASK. AND IT WAS 2D. But otherwise, the tasks were cool.

Then we played a few rounds of Ligretto and tried hit the table as hard as possible while doing so. (We’re on the lookout for new cards, tables and hands!) Dinner was Pasta Salad and it was very good. We even got desert: Flan! (it’s something like pudding). After dinner there were some solution presentations for the contest tasks.

In the evening there was a game night with some of the online participants, as well as a big round of werewolf. Then we went to bed after a long day. Unfortunately, the light went on at 3AM because the switch accidentally got hit by a foot. But the issue was soon fixed after the initial confusion.

Thursday (17.02.2022, Eliška, Online Participant)

Today was a no-laptop day. We got four theoretical tasks which we were supposed to solve during three and half an hour. The onsite participants were solving them in groups, so we, online participants, also solved them together. We discussed our solutions and in the afternoon, two of us presented our solutions to the organizers.

An interesting detail was, that we didn’t know the intended time complexities. We were just supposed to come up with the best solutions possible.

Friday (18.02.2022, Group 2)

Es war also Freitag, der letzte Tag vor dem Ende. Wir wussten schon lange was dies bedeutete: Der You-Cup, welcher sowohl I-Cup sowie Egg-Cup genannt wurde (wieso auch immer). Wir hatten heute einen neuen Weckerton. Er bestand aus der Audio-Aufnahme von gestern Abend, in der Linus herumbrüllt. Mit diesem sehr unangebrachten Weckton stand ich immerhin schnell auf. Wir assen Frühstück, ich mein Müsli und der Cup stand schon vor der Tür.

Direkt nach dem Frühstück 5 Stunden Contest! Das klingt nach ziemlich viel Zeit, aber es fühlte sich eher wie 1 Stunde an. Wir lösten mit konzentrierten Gedanken und Kopfzerbrechen die 7 Aufgaben, wobei niemand, ausser ein slovakischer Gast, die volle Punktzahl erreichte. Es war herausfordernd, sogar schwerer als die Trainingscontests. Man kann sich vorstellen: Nach den 5 Stunden waren alle tot bzw. erschöpft.

Zum Glück konnten wir darauf das Mittagessen verschlingen. Es gab Gnocchi! Danach folgten die Lösungen der soeben gelösten Aufgaben. Weiter ging es mit einigen Gruppenfotos, einer Freizeit und das Abendessen war schon bereit, gegessen zu werden. Das spannende aber, folgte nun: Die Rangverkündigung! Die Gewinner wurden verkündet, aber da wir alle einen guten Beitrag zum Lagerleben geleistet haben, bekamen alle ein Buch über Informatik/Mathematik. Wir klatschten, klatschten, klatschten (wir applaudierten fast nach jedem Satz) und der letzte Spieleabend des Lagers begann.

Nun, mal wieder ist ein Lager gleich zu Ende und man geht am nächsten Morgen in den Alltag zurück. Das Leben ist halt.

Groups

Group 0: Vivienne, Priska, Jasmin, Hongjia, Evelyn, Hannah

Group 1: Lukas, Pascal, Ferdinand, Elias

Group 2: Ursus, Till, Nandor, Andrei, Linus, Yaël

Group 3: Lionel, Lucien, Jan, Jérémie, Kimi