SOI Camp 2025 in Sarnen

26 participants from Switzerland met in Sarnen to train together for one week.

Ferdinand Ornskov
News

26 participants from Switzerland met in Sarnen to train together for one week (08.02.2024 - 15.02.2024). They were accompanied by a delegation from Slovakia and from the Czech Republic. In many lectures, contests, and other activities they sharpen their skills in algorithms and practice to apply them in challenging problems.

Each day, some of the participants write about their experience. More photos can be found on Flickr.


Saturday, 8th of February

Written by: Austin, Ursus, Andrej, Linus, Pranav, Jovian, Jason, Leonhard

Saturday was the first day of the camp, and set the tone for how the rest of the camp would play out. Even before arriving at Sarnen, we encountered challenges. For some, the train travel itself was over 3 hours long, so long, in fact, that when we arrived at Luzern that Andrej somehow almost forgot his suitcase in the train! (fortunately it was the terminal).

Upon our arrival at Sarnen, we played a game of icebreaker, where we each write three things about ourselves on a piece of paper and try to find the person who wrote ours. After that, we were separated into 8 groups and tasked to make a bridge out of spaghetti and marshmallows, able to span the gap of around 35cm, and withstand the pressure of a rubber duck. Unsurprisingly most of our bridges failed miserably, but perhaps even more unexpectedly, two of the bridges managed to hold, not one, not two but three and even five rubber ducks!

img1 img2 img3

img4 img5 img6

Saturday’s dinner was - for many - their first taste of SOI’s food. To no one’s surprise, having a bunch of coding mice preparing the dinner can sometimes result in some undefined behaviour. For example, tonight’s manifastation could perhaps be classified as a TLE (time limit exceeded) in the cooking subtask, resulting in some murmurs of overcooked food being heard at the dinner tables. But fret not! Mouse Binna and Mouse Stofl still have plenty of time to debug their submissions!

Unfortunately, cleaning up cooking leftovers from a buggy recipe turns out to be far less trivial than cleaning up the messy remains and dangling pointers of a broken program! This fact the cleaning team found out the hard way by spending a considerable amount of the evening clearing the kitchen of any evidence of previous happenings. But, being considerate participants, we assembled a group of 8 dedicated people and decided to help the cleaning team in the way we best knew how, by going to buy some snacks at the train station to bring back as rewards to the valiant cleaners.

Sunday, 9th of February

Written by: Myriam, Laetitia, Seraina, Zsófia

Today was the first day of the camp. After the breakfast, we began the day with a 3-hour introductory contest (obviously right on time). The contest consisted of 5 interesting tasks. The topics were scanline, binary search, segment trees, DFS, and others. At twelve o’clock we ate lunch, soon after which the solution presentations were held. Followingly, we were separated into three groups: beginner, advanced and expert. In these groups we learnt about algorithms related to graphs. In the advanced group the topics consisted of: MST, articulation points & bridges, and back edges. After that, we ate dinner. While some people were doing the dishes, the Slovak delegation sang some songs and played the guitar. Lastly, we upsolved some tasks, however other participants also played games (like Tichu).

Monday, 10th of February

Written by: Jan, Albert, Anthony, Erik

They say breakfast is the most important meal of the day, which is why we missed the start of it. Technically, we got up after 8:00 AM, which was the start of breakfast, but given the well-documented fact that time moves differently in the mornings, we didn’t quite make it on time. A rough start, but nothing we couldn’t recover from—until we saw the problem set for the day’s contest.

The contest theme was graphs. Graphs are great, graphs are fun, graphs make you question your life choices. The first problem had no subtasks, which meant solving it was an all-or-nothing gamble. Since none of us felt like taking that risk so early in the day, we unanimously decided that “nothing” was the safer bet. Instead, we did the smart thing: worked our way through the later problems while occasionally side-eyeing Problem 1, hoping it would spontaneously solve itself. It didn’t.

After the contest, we were rewarded with vegetable risotto. Most of us accepted this reality without question. Albert, however, did not. He examined the dish like it was part of the contest and he had to prove it was bipartite before taking a bite. We may never know what sinister secrets he suspected were lurking in that risotto, but we do know that he was not convinced.

Post-lunch, we had four hours of lectures. The topic? Dynamic Programming. The reality? Something close enough to Dynamic Programming. The expert lectures covered Weighted Union Find and SOS DP, which at least made sense given the theme. A significant improvement from Sunday, when the lectures seemed to be highly incongruent with what they were supposed to cover. Meanwhile, the advanced lectures took on DP on trees and bitmasks. So while it wasn’t a perfect bullseye, at least we hit the target area.

Dinner was gnocchi in a red vegetable sauce. A solid meal, but let’s just say some of us (cough the entire table cough) were deeply concerned about the distinct lack of meat. Carnivore panic ensued. Murmurs of “protein deficiency” and “we are not rabbits” echoed through the dining hall. In the end, we ate the gnocchi, but not without loudly mourning the absence of even a single bite of chicken.

After dinner, we had three seminar options: Compression, Memory Optimization, and Debugging Tips and Tricks. The group overwhelmingly chose Compression, which was, by all accounts, an excellent choice. Except for Richard. He had the distinct pleasure of washing the dishes first, so he only caught the last 15 minutes. We were able to get across that it was very enjoyable, which he was grateful to hear, but it also made him a little jealous. Dish soap is not as intellectually stimulating.

Post-seminars, the usual suspects gathered downstairs for some guitar playing and Tichu. However, we were responsible adults (for once) and went to bed early. Tomorrow, we would have the DP contest, which promised to be a lot more fun than today’s graph contest—more of a creative challenge than a stressful gamble. We looked forward to it.

Tuesday, 11th of February

Written by: Hongjia, Hana, Sarka, Michaela, Lucia

The morning program was just like usual. We got a contest about the topic we were taught the day before, which was DP. Just like some of the lectures, some of the problems were not exactly DP or also used other topics.

Giving credit where it’s due, the food flavour quality improved significantly since day 0! For lunch, we had vegetable lasagne, no complaints there. However, being in the cleaning team, this wasn’t fun to clean! The cheese stuck to the edges of the container. We had sweet sour chicken with rice for dinner, which was flavourful and overall tasted very nice!

In the afternoon, we went on a photo hunt, where the goal is to make the most creative photos of places. The places were given in the format of some collage of the photos from previous years. It was an advantage to remember the rough locations from previous experiences, even though thinking of an original creation was difficult. All of us in my team generally were lack of ideas and wasted almost an hour on the first stop. In the end, we decided to take the ducks as a theme and made a storyline based on that, because Hana, a Slovak participant in our team, brought a sleeping bag full of rubber ducks!

In the evening, we taught people how to play Blood on the Clocktower. The game is not as scary as it sounds! Actually, the whole atmosphere was hilarious, as we constantly made jokes about eachother. The game is more of a social deduction game, somewhat like an advanced version of werewolf. The team I was in won both times, because we managed to prove our identity and guess out who was in the evil team.

The people who played this game went to sleep quite late, as the game was long and we played two rounds. Nonetheless, we were happy and full of energy.

Wednesday, 12th of February

Written by: Austin, Ursus, Andrej, Linus, Pranav, Jovian, Jason, Leonhard

Wednesday started similarly to other days with a contest. However, in contrast to other days, this contest was in groups of two to four! These groups were predetermined by the leaders, and we also had an extra hour to solve problems: 4 hours instead of 3 hours. Most fun of all, each problem solved equated to a balloon, and whoever had the most balloons by the end of the contest was the winner. You heard me right: Balloons, not points. And before you ask: No, balloons were not necessarily in a bijection with points. To be more precise, even though every solved problem is equivalent to a balloon, a balloon is only counted as valid points if it is inflated.

What happened to those balloons, you might ask? Fear not, we aren’t barbarians nor polluters: First, we attempted to make the balloons stick to the ceiling using static electricity, then when they all started falling we made them into a beautiful garland.

An image of balloons stuck to the ceiling at Sarnen Camp 2025

The afternoon’s lecture was on data structure. Most of the lecture seemed much simpler and more digestible than other lectures. Until the very last, the Segtree, one of the most complicated processes ever seen on this earth [*]. This was so contrived that a lot of the beginners who went to the advanced group at the start of the day ended up returning to the beginner. On another note, over 60 breakfast bowls were stolen the same day. Coincidence? I think not.

[*]A roomate’s note, this person doesn’t appreciate the existence of this magic

Thursday, 13th of February: ExIncursion

Written by: Corsin, Zeno, Raffael, Jonathan, Erik

We started this great day off by playing games until 3:50 am. Then, we went to sleep responsibly, as opposed to the leaders, who were still up debugging today’s challenges for the DS contest with an ETA of around 4 hours on completion.

Though, thanks to their night shift we were able to have a fun data structures contest, great success. After lunch we waited on the final decision about what to do in the afternoon. Scheduled was an excursion, specifically a hike, but due to bad weather [†] it was delayed indefinitely.

In exchange, we had two interesting seminars. The first one was particularly entertaining, as we watched little programs (“ants”) evolve in a simulation similar to game of life.

Unfortunately, the great bowl heist mystery remains unsolved…

[†]This was literally the first and only day with rain… maybe programmers just aren’t meant to go hiking outside during a coding week

Friday, 14th of February

Written by: Albert, Alex, Máté, Levin, Nils, Simon

Today we started with a nice surprise! There was snow [1]! So logically we went outside to take some nice group pictures with the snow. But that only happened in the afternoon. Before that, we had breakfast and we even had enough bowls, even tough, there was a bowl heist in the last few days. Than we had our final contest in this camp. It was also the first contest that used F++. If you want to know more about F++, you can read this blog from Ursus. [https://soi.ch/blog/rmi24-blog, scroll down to Ursus] It also started on time! [2] It lasted 5 hours which was the longest contest we had in this camp, but we also got 8 instead of 3 tasks. We were excited to solve 1 or 2 easy tasks to get some moments of success, before spending the next 4 hours with debugging. In one of the lectures we learned some useful debugging methods (staring at the screen [3]). As mentioned before, after eating lunch later than usual, we went outside to take some pictures. Here you can see us:

A group picture of the 2nd boys room at Sarnen Camp 2025

When we returned we wanted to go to our rooms until the solution presentations started. Due to unforeseen events [4] they were moved and we got woken up after an unplanned nap to dinner (at least we didn’t miss much). Luckily, we [5] are currently safely writing this blog from the Luftschutzbunker [6] . Sadly there is no internet down here. After the dinner it was time with the closing ceremony. We got the ranking of the Ferdicup and the ranking of the picture hunt. While the first one was based on skill, the other one was based on the number of rubber ducks you had. In this moment we also want to thank the orga team for spending a week with us, organizing the camp, holding lectures, writing tasks, cooking food and so much more. We really enjoyed this camp and hope to also be here next year. Tomorrow we will have to wake up a bit sooner [7] , meaning, that we will play games all night. Goodbie [8] .

[1]turns out, leaders can order snow
[2]+-20min
[3]very effective
[4]some participants were feeling a bit ill
[5]room number 2, writing this blog, also on the picture
[6]air raid shelter, basically a bunker in the basement
[7]we have to clean
[8]meaning Goodbye. Albert might have been to tired to spell it correctly