< Back

The blue mountains near sydney, Summer 2013

The Swiss Olympiad in Informatics

The first year

In autumn of 2012, shortly after having joined Gymnasium Neufeld for 10th grade, my maths teacher C. Schneuwly pointed me at the Swiss Olympiad in Informatics. At the time I didn't think much of it, but I knew Java so I thought I'd give it a try. From the six tasks of the first round, what really hooked me was a task called "Who wants to be a billionaire". From the outside it looked very simple: your program would be given a question and four possible answers. Choose the correct answer and advance to the next round. Yet any programmer will know, this is a very hard problem to solve. For each question, the program could do a limited number of Wikipedia queries before it had to give a response. Nowadays you would probably use machine learning and a natural language processing framework to solve this task, but at the time I certainly didn't have the hardware for modern machine learning and didn't know the theory for proper language processing either. So I hand-crafted a scoring method for finding the most important terms in a question and then statistically compared the words in their wikipedia articles with the articles from the four possible answers.

Some time passed and on 12th January 2013, the results of the first round were announced. There was a live show of all submissions for "Who wants to be a billionaire". The questions started off easy, asking for the name of Mario's Brother in the Super Mario video games. Even a question asking for the name of Beethoven's only opera was correctly answered. Yet later questions like "What letters are on the '3' button of a touch-tone telephone?" clearly showed that the programs lacked any true understanding of the objects they were asked about. In the end it was a close race between Benjamin's submission and my own, yet my program managed to come out ahead. After this success I was lucky enough to be invited to the Davos camp, a week-long training camp for programming. Every morning we would have lectures in algorithms and in the evening there would be a contest to apply our learnings. This camp was crucial for my learning, since I had never before written any C++ nor did I have much experience in algorithms.

The last hurdle to overcome would be the finals. It consisted of the twelve best participants competing in four five-hour long contests each. After the first two days of contest, the outlook was grim. I was ranked 11th at the bottom of the pack. Yet the work of the leaders during the Davos camp paid off and after the last two days I was able to place in third position. Now could the fun begin! The top four participants Johannes, Cédric, Benjamin and myself were invited to the International Olympiad in Informatics in Brisbane, Australia.

After a 36 hour flight with our leader Samuel, we wearily arrived at about 5:30 am in Brisbane. We were guided arounded the Campus of the University of Queensland by our local guide Peter. In order to fight the jetlag it was decided that we would stay awake until the evening. So we went to have a look at the city, although for myself it was mostly a fight against my heavy eyelids. During the day we were also joined by our second leader, Sandro, who came directly from Russia. The second day was a bit more relaxed, starting off with the practice session and followed by the opening ceremony. Then, on the third day, we finally had our first contest. Lasting five hours as per usual, but with a stray wombat in the contest area, which was not usual. There was a very interesting task with the title art class. The goal being to classify images into one of four categories: modern art, impressionism, expressionism or color field paintings. We had to do this in bare C++ with classical algorithms. My solution consisted mostly of line detection and analyzing the distribution of colors in the image. Johannes, who was our strongest team member had a hard time on this day. After a daytrip to Sunshine Coast, the contest continued. As on the first day, I didn't do very well, but Johannes took the chance to climb the ranks. Unfortunately he still didn't qualify for a medal.

Now that the contests had ended, we were free to enjoy Australia! Since the official IOI had ended, we had to part ways with our friendly guide Peter. Even though Johannes and I used every chance to wander off and inspected every corner on and off the campus, we managed to catch our flight to Sydney. During our week there, we visited the various museums the city had to offer and used the chance to watch La Forza del Destino in the Sydney Opera House. For me, the biggest attraction was our excursion into the Blue Mountains west of Sydney. Starting off riding a train that looked like it was built to withstand a bear attack. Arriving on the mountainside, we finally got some fresh air that was dearly missed after spending nearly two weeks in the city. We got to enjoy the gorgeous view of mostly untouched forests and plenty of waterfalls. I was also quick to try the water, even though we later learned that we weren't supposed to be drinking it. It still didn't taste too bad.

The last gift of the 2013 contest was the Central European Olympiad in Informatics in Primošten, Croatia. This time my teammates consisted of Benjamin and Timon S. Unfortunately Johannes couldn't make it, so this time I had to explore the surroundings on my own. I had just before been gifted my first DSLR, and this was the perfect place to try it out. Right next to our apartments was an abandoned building, something I would've taken forever to find in Switzerland. While the official program consisted of a karaoke evening, I had a great time testing just how waterproof my camera is and managed to photograph my first lightning strike. While I was off, doing everything but focusing on the competition, Benjamin actually managed to secure himself a Bronze medal! Then, out of the blue, a photo competition was announced. I submitted a photo that I took during our excursion to the Krka waterfalls and won. So I got to take home the unlikeliest of prizes from a programming competition.

The Krka Waterfalls in Croatia
Daniel G. handing over the creative creativity prize
Davos camp: Expectation
Davos camp: Reality
Our guide Peter showing the way!
Sandro is becoming one with nature.
This train will take us to the blue mountains.
LTR: Samuel, me, Cédric, Johannes and Benjamin

View of the mountains in Taiwan, Summer 2014

The second year

Back for more!

After such a great and enjoyable first year with the organizers and participants of the Swiss Olympiad of Informatics, I obviously couldn't wait to get back. By the time we returned from Croatia, the first round had already begun. This year once again had an interesting task called Cops and Robbers. As the name suggests, one had to write a program that plays either as cops or robbers and has to evade or catch the opponent. The game is played on an arbitrary graph. Even though the task was a great fit for me, I didn't even manage to get into the top three on the SOI day, those were taken by Luca, Benjamin and Ian. Still, there were five other tasks and my time investment paid off as I won the first round overall.

Next up was once again the Davos camp. Doing it for the second time, I could recognize some old faces again. This year, we were joined by delegations from Slovakia, Russia and Israel. One person in particular that I would see many more times is the legendary mišof from Slovakia. I had first seen him 2013 in a training camp in Bratislava, where he managed to explain the KMP string matching algorithm using lemmings. Although I no longer remember the exact explanation, the lemmings did stick. He is probably one of the most dedicated algorithmics teachers, staying with the olympiad much longer than most.

Going into the finals, there was one major difference in this year's contest. It was now possible to see one's own scores live during the contest. In the previous Swiss competition, one could never know whether they solved a task completely or had a bug in their solution and scored zero points. This year, Benjamin had been honing his skills quite a bit in online competitions, which I did not do. This showed in the final results, with Benjamin taking the first rank and myself only ranking second. Timon S. and Raphael completed the top four that would travel to this year's IOI.

The Central European Olympiad in Informatics 2014 was in Jena, Germany, so we wouldn't be traveling anywhere exotic this time around. I was accompanied by Timon S., Ian and Elias, with Timon G. and Sandro as leaders. Even though we didn't travel far, there were some surprises. Most signficantly just how focused the school hosting the competition was on programming. Whereas Swiss schools would barely touch on the topic, their students would have intensive courses from an age where I didn't even know programming competitions exist. While the Swiss competitions taught me all I ever wanted to know, such competitions are inaccessible to the vast majority of students. In the end I managed to win a bronze medal.

We traveled to Taiwan one week early, so we would all be well acclimated by the time of the International Olympiad in Informatics. Even though Taiwan is on the same longitude as Australia, it being north of the equator meant that we would have a much warmer climate this summer. Indeed, these two weeks would turn out to be my most humid weeks yet. Our plane landed in Taipei where I was promptly overwhelmed by impressions. From the shiny modern, orderly subway, to the messy streets overcrowded with mopeds. Every meter we could smell a different food stand. Obviously we were never going to see everything of a city which has nearly as many inhabitants as our entire country.

Taipei bursting at the seams

After spending two days taking in Taipei, we took the train to Jioufen, a mountain town in northeastern Taiwan. While the scale and terrain of Jioufen was seemingly as close as you could get to a Swiss village, it was also the complete opposite. The ocean being only 2km away, the climate being completely different and of course a completely different culture. Where we thought we had no idea what we were eating in Taipei, it only became more suspect here. Anyway, my focus wasn't the food, I wanted to find the nearest mountain and climb it. I managed to convince the team and ahead we went. The climb was only a few hundred meters, but due to the humid climate, we were quickly soaked in sweat. The path also kept getting tighter and sketchier. Fortunately, we wouldn't have to endure the heat much longer. Soon it started raining in repeated cloudbursts, short, intense rainfall as you can also sometimes experience it in Europe. We made it to the peak and I got some really nice footage of the clouds moving over the hills. I thought I was watching a timelapse, but these weather formations were simply changing way faster than I was used to. Shortly after, it started pouring again - but this time, it didn't stop. We quickly descended on the other side of the mountain, the path turning into more of a river, and found a small memorial on our way back. It was good enough to protect ourselves from the rain for a few moments. Yet we didn't have to struggle much longer, since, completely out of the blue, we were surprised by a car driving (or floating?) by. The driver was nice enough to pick us up and give us a ride back into town. Once I entered the car I really started realizing just how drenched I was. My "waterproof" backpack had turned into a bag of water, spreading water all over the car. I quickly removed the batteries from both of my cameras. Unfortunately both my video camera and my tablet, which I used to navigate, ended up succumbing to the damages. At least the tablet still got us on the right path home. The following day we did a less exciting tour, visiting the local goldmines.

Having had our dose of excitement in the village of Jioufen, we returned to Taipei since the competition would start in only a few days. We saw some nice temples in Taipei, but the great attraction for nerds like us was a big electronics mall known as the Guanghua Market. It could be imagined like a physical representation of AliExpress. When you enter, you can buy all of the common consumer computer parts, but as you keep going, you can find a store for every part imaginable. I ended up buying an audio adapter and two tiny lithium batteries that I still use over five years later. As our last trip on our own, we went onto the Taipei 101 tower, not knowing we would do so again as part of the official program. As we arrived at our stay for the rest of the event, we met our very positive and enthusiastic guide by the name of Melody. Apparently it was common practice for Taiwanese to adopt English names for communicating with foreigners. It turns out that she was a big fan of Switzerland and had even learnt to speak French! During the week we went to the Zoo, an entertainment park that didn't entertain me very well and a center for traditional arts. Unfortunately I was unable to get a medal, but Benjamin managed to snatch himself a Bronze medal for his last year of participation.

A traditional game in Competitive programming: Ninja
Sandro makes even a life jacket look great!
CEOI Team: Timon G., Ian, Me, Elias, Timon S., Sandro
First impression of traffic in Taipei
Jioufen in all its peacefulness
absolutely drenched
Our enthusiastic guide Melody
IOI Team: Raphael, Josef, Me, Timon S., Melody, Benjamin, Daniel G.

Fields near Turgen, Kazakhstan, Summer 2015

The third year

A new challenger?

The third time around, I had lost some of the initial motivation and only invested a few hours into the first round. Thus there weren't going to be any prizes for me, yet there was still the reward of having R. Rivest, one of the inventors of RSA, giving a talk about cryptography on the day of the prize ceremony. Due to my bad performance, I only barely qualified for the Davos camp. Being confident in my abilities from previous years, I didn't think much of it. Even successful participants usually don't make it to the top spots in their first year. Once in Davos, I finally realized that some new challengers had entered the competition. Daniel R. and Stefanie, participants from the Swiss Mathematics Olympiad had joined us and were on a quick path to success. As per usual, the Davos camp ended with a contest. There I was already beaten out by Daniel, who had only been with us for a few months.

Onwards we went to the finals. This time I was joined by my old friend Pascal, who ended up managing to snatch the fourth place, securing his ticket to Kazakhstan. The third place was taken by Timon S., a long time veteran of the olympiad. Now the first two places were left to Daniel and me. In the first two days of the finals, Daniel was clearly pulling ahead, but for the next two days, luck was on my side. On the third day, I managed a perfect score and on the fourth day I got very close. Mostly due to both days featuring a task requiring the convex hull algorithm, which I had implemented many times before. Even after such a great performance, I did not manage to catch up to Daniel who got his well-deserved first place.

This final year I would not go to the Central European Olympiad, since it was reserved as a training opportunity for contestants who could participate again in the next year. The next stop would be the International Olympiad in Informatics in Almaty, Kazakhstan. After our arrival, we met up with Bexultan, our guide for the coming week. He might not have been quite as outgoing as our last two guides, but he could tell us everything about life in Kazakhstan and the big generational gap between the Soviet old guard and the youth in a country looking for a new identity.

Even though landlocked Kazakhstan is one of the driest countries you could think of, I still have a wet story to tell. As you might know, the country is mostly a flat, sparsely vegetated desert. Almaty being the exception due to it being so close to Kyrgyztan, it has some proper mountains and even a Ski resort that Putin supposedly used to visit. Obviously I had to make sure we'd catch a bus into the mountains and have a look around. Not having brought quite enough water, I filled up my bottle on a small stream. This was certainly some of the worst tasting water I'd ever drink, yet it was still the most potable I'd find in the country. Later we were surprised by a bit of rain, but this time I came prepared with plastic bags to keep the electronics safe. On our way back down, we came by a small village of local farmers. Suddenly one of the locals shouted out to us, being on our own in a strange country we weren't quite sure how to react. Still, he got our attention and ended up surprising us by knowing some German, thousands of kilometers from home. He offered us to eat a watermelon, which got us to stick around. He told us his story of being an old veteran of the Soviet army, having served his time in East Germany. After talking with him for a bit, he even offered us a ride home. That was an adventure of its own, learning how to fit seven people in a car built for four. Two people ended up sitting on the front seat and one had to sit facing backwards on the center console. He drove us all the way back into the city.

The official competition started with one of the most pompous opening ceremonies yet. The highlight being the moment where the hoisting of the IOI flag failed and the flag fell to the ground instead. With the contest coming up on the next day, we were as per usual cut off from the leaders who had already seen the tasks. This year, the organization commitee tried to up their cheating prevention by mounting some scary looking radio jammers. I can confidently say that they didn't work a bit, since I spent the night playing Age of Empires with the German delegation over Wifi.

The coming day, Daniel R. managed to score plenty of points, being right on track for a Gold medal. While the contest was nice and I also got a fair amount of points, my sights were set on one goal: Pancakes. With some help from Bexultan, we managed to lend an old pan from the kitchen and bought flour, milk and eggs in the city. Since our residences were newly built student apartments, they also contained some rooms that were supposed to later become kitchens. In one of these rooms we found a working stove and started baking. Philip and Julian from the German delegation joined us to help out. But even with all this help, we couldn't solve the problem of the pan being round on a flat electric stove. This meant that we were only able to bake tiny pieces of pancakes on the contact point of the pan. Unfortunately, the stove was not the only thing working in the room. The fire alarm right above the stove wasn't very content with our results and decided to alert all 322 participants to our activities. Fortunately, fire protocols weren't very strict and the alarm just stopped after some time. We later shared the remaining pancake pieces with the other participants.

The two contest days were broken up by an excursion to the local winter sport resort. While there was the option to take a gondola, we obviously had to go up at least partway by foot. The first attraction during our hike up being a pair of old soviet ATS-59 vehicles. To get up to the peak at over 3000 meters we did end up having to take the gondola, a well maintained Doppelmayr cablecar as you might see it in Switzerland. The stark contrast in comparison to the poorly maintained infrastructure in the rest of the country made this seem rather decadent. To finish up a day of showing off a facade, we got to enjoy a show of the Kazakh national circus.

The second contest day was a major disappointment for Daniel who dropped down into the upper Bronze ranks, due to some bugs in his implementations. I managed to hold my position in the lower Bronze ranks, meaning we would still go home with two medals that year. The next day, our second excursion would show us a bit more of what Kazakhstan is actually like. We were driven a bit further out into a show village for Kazakhstan traditions. During the bus ride, one could see how quickly the fairly well maintained asphalt roads of Almaty turned into dirt roads, with some of the local drivers ignoring the roads completely to circumvent the traffic. Pascal, Bexultan and I obviously didn't stick around the show village and instead decided to climb a nearby hill to get a better view of the surroundings.

After another ridiculous ceremony closing off the week, my third and final IOI would come to an end. Still, I am confident to say that I made the best of it. The new competitors Daniel R. and Stefanie would return once more to the IOI in 2016, collecting a gold and a silver medal, respectively.

Having a look around Almaty
Slightly Wet: Timon S., Daniel G., Me, Daniel R., Pascal, Bex
Free Melon after an exhausting hike ...
... and a free drive home!
Celebrating a successful contest
An old soviet ATS-59
They even have glaciers like in Switzerland!
Realistic depiction of myself during competitions
Bexultan tasting my medal

The Chinese Wall near Beijing, Spring 2018

After the Olympiad

Where to next?

In Autumn of 2015, I started my first year as a student at ETH Zürich. This meant I would no longer be eligible for the Swiss Olympiad in Informatics. While I could now help in organizing the olympiad, it wasn't certain where I'd be going next myself. The most similar competition at university level is the ACM International Collegiate Programming Competition. Unfortunately it doesn't offer anywhere close to the community that I'd get from the olympiad, which was the main driving force for me to invest my time into it. This is mostly because there is only a single day of local contest for team selection, with no training camps, multiple rounds of selection nor other events. I still tried my luck in the selection contest in the same year and managed to qualify for the second team. The international competition works in teams of three people, so the six best students in the selection contest are selected to form two teams. Johannes, who I had competed with in 2013, managed to make it into the first team. His team would go to win Gold at the South Western European Regional Contest and go on to the World Finals in Thailand. We also had some fun in the second team, but only won a bronze medal. So this is where this year of the ACM ICPC would end for me.

In 2016, I skipped the selection contest for the ICPC since I was working on a video job. The next contest I participated in was the MIT Battlecode in January 2017. This is a completely different competition and it came completely unexpected. Eshed, a colleague from Israel invited me to participate as a team of two. We had to write a bot for a game similar to the SOI creativity task. The task was to control units similar to an RTS game where you'd have to fight against an enemy bot and could win by either destroying all their units or buying a certain amount of victory points. Since each individual unit would be controlled by a different instance of the bot and only ever see a small part of the map, we focused a lot on effective communication that'd use as little bandwidth as necessary. Eshed contributed a bloom filter that'd allow us to efficiently manage reports of enemy units. The contest consisted of two rounds, an online round to select the top sixteen teams, and a final round in Boston to find the winner.

Since this was our first participation in this competition, we didn't expect much, but still managed to be invited to the finals. This came rather unexpected, since I was supposed to be having exams during that time. I decided to fail the exams and go to the finals instead. So there I was buying tickets for a week in Boston, my first time in the United States actually. My first impression of the city was it being much dirtier than I had expected. When traveling to Taiwan and China, I didn't expect Swiss standards, but Boston is a turf just as expensive as Zurich. After meeting up with Eshed and seeing him for the first time, the finals went by rather quick and we managed to secure the 4/5th place among students. The best thing about the finals being the nearly inexhaustible supply of pizza, much better than any other contest I'd been to. There was also a nice prize money, but I never managed to cash the check since they are long obsolete as a means of paying in Switzerland. The rest of the week, I took a train out of the city to get a look at the landscape further west. I also once made pancakes for everyone in the youth hostel that I was staying at. In the end it was a rather sad and lonely week, since I had to spend it mostly on my own.

Later that year, it would be time for another ACM ICPC selection contest at ETH Zürich and this time I would try my luck once more. I actually ended up on third place, qualifying for the first team together with an old companion, Daniel R. Additionally we were joined by Simon. While I hadn't been focusing much on competitive programming in my years since Kazakhstan and Simon didn't have much experience in it, Daniel had kept on improving year after year. This meant that the coming international competitions would all be carried by him alone. Shortly after the selection we were invited to a training camp in Toulouse called the "World Champion Programming School". That does sound rather pretentious, but the name wasn't meant for us, it was meant for the programmers from the St. Petersburg ITMO university that came to train us who were world champions indeed. Unfortunately their talent was rather wasted on me, since I didn't focus one bit on their teachings. Daniel couldn't make it, but at least Simon profited from it.

Later in October, I spontaneously signed up for the Polyhack 2017 after a friend recommended it to me. It's a Hackathon at my university. After arriving on location, we were free to make our own teams and I found four others to join forces with. I expected a hackathon to be about developing some prototypes and maybe solving some problems, but it turned out that this "contest" was purely about finding a good startup idea and pitching that idea well. The topic was on interviewing techniques and our product was a theoretical online streaming platform where people could present themselves to possible employers. This won us the first prize.

Back on track for the real contest, Daniel, Simon and I went to Paris for this year's edition of the Southwestern European Regional Contest. We were also joined by the second team consisting of Benjamin, Ian and Mislav. Thanks to Daniel, we won a Gold medal and advanced to the World Finals in Beijing. Once in Beijing together with our coach Kieran, I realized just how out of place I was. Surrounded by people who had worked incredibly hard to get there, I was mostly interested in checking out the city instead of preparing for the competition. Similar to the international olympiads in informatics of earlier years, we would do an excursion. This time to a small part of the Great Wall of China near the city. Having been trained well from my previous competitions, I quickly lost the travel group and had a look around of my own. Thanks to the immense smog that even reached out here, we didn't see much of the city. All of the photos have been massively enhanced in order to see through the fog. At Peking University, this year's world finals host, there was a small exhibition for us to look at. What caught my attention was a company working on artificial intelligence for StarCraft 2. They actually managed to learn some fairly efficient Reaper micro. On the day of the contest, Daniel did a great job and solved six problems which landed us on 29th place (14th without tiebreakers). Since the problem difficulty had increased markedly from the regional contest, there wasn't really much for me to do but create bugs during the competition.

Near the Great Wall
Porto: Daniel G., Me, Gilles, Martin, Kieran, Demjan, Johannes, Timon G.
Me, Eshed and a lot of pizza!
The other side of the United States
A quick victory at the Polyhack
The biggest attraction in Paris
Me, Daniel R., Benjamin and the Eiffel tower
Eating Peking duck
Our coach Kieran in front of the forbidden palace
World Finals Team: Simon, Daniel R., Me
Every ICPC Contest comes with Balloons