Introduction

The 35th International Olympiad in Informatics (IOI) 2023 was held in Szeged, Hungary from 28 August to 4 September. The Malaysian team comprised Vee Hua Zhi, Isaac Hew Kai Sheng, Loh Kwong Weng, and Neo Yong Li. The Team Leader is Amos Tan Li Sheng and the Deputy Leader is Chew Shao Qian.

It was the third IOI for Hua Zhi, the second IOI for both Isaac and Kwong Weng, and the IOI debut for Yong Li. We all traveled to Szeged, returning to an onsite competition after two years of online and hybrid contests!

Day 1: Arrivals

We landed at the airport on 27/8 at 10 pm and reached Budapest on 28/8 at 2 pm local time, following a 5-hour layover in Dubai.

We arrived at the hotel at 8 pm, and we met our team guide for Malaysia, Luqman, who is also a Malaysian!

Hua Zhi’s Perspective:

We had to wait for the bus for two hours, but it was worth it. Amos brought me around the airport. We met and took pictures with some world-class athletes at the airport as The World Athletics held in Budapest just ended and the athletes were flying back to their respective countries. Here’s me on a “podium”:

Hua Zhi on a Podium

Day 2: Practice Contest, Opening Ceremony

The morning started with a practice session right after breakfast at Pick Arena.

Empty hall

The Opening Ceremony took place at a different venue after lunch.

There were several performances and dances. Then, every country was introduced.

Malaysia!

Group Photo

Day 3: Contest Day 1

Day 1 tasks: closing, longesttrip, soccer.

Hua Zhi’s Perspective:

I took my time studying the problem statements, and I did some brute force subtasks to confirm that I understood the problem.

Problem 1 looks possible but implementation-heavy, so I thought for a bit, figured out some subtasks on paper, and left that aside. I didn’t really understand how to approach problem 2 at that moment, so I left that aside too.

I focused on Problem 3. It was surely a dynamic programming problem, but I couldn’t figure out how to form the subproblems. Hence, I focused on getting the 25 points by just figuring out if the set consisting of all empty cells is a regular stadium. It took me about 20 minutes, but I managed to secure it.

I returned to problem 1 implementing my solution, but my idea did not work out. Not wasting any time, I proceeded to problem 2.

Problem 2 was fairly easy once I figured out what the idea was behind it. I fought my way up to 60 points and decided to stop as continuing might be a waste of time since I haven’t had much hope with the other problems.

I eventually settled on solving the subtasks in problems 1 and 3 one by one. Implementing it used a lot of time but it was better than leaving it at 0.

At the final moments, I realized that problem 2 can be further improved using binary search but it was too late.

Overall, I was happy about my performance.

Isaac’s Perspective:

At the start of the contest, I started on problem 1 as that looked the most doable. Problem 2 was hard to understand, and Problem 3 looked impossible to do. After 3 hours, I gave up and submitted an 8 point solution just so I would have a nonzero amount of points. A while later, I started on Problem 2. As I read the statement again, I soon figured out an idea for a 60-point solution. However, my attempts at submitting gained me no points, even after trying to optimise my code from a TLE.

My final score was 8-0-0. Knowing that the usual score for the IOI was around 80 on the first day, I was very disappointed that my score was in the single digits. I could have gotten 60 more points if I had just focused on Problem 2 instead of Problem 1. I felt that the problems this year were much harder than the usual IOI day. Nelson agreed, saying that it was very hard for him to farm subtasks.

At lunch, Shao Qian said that this day was one of the hardest days in the history of the IOI, with all three problems having an AC rate of less than 3%. I hoped for an easy problem tomorrow so I could get at least a medal.

Kwong Weng’s Perspective:

I read the first problem. I gradually got some ideas that seemed feasible at first sight. But as I went into the details, things became overwhelmingly complex. There are just too many possibilities that I cannot rule out systematically. This problem ended up as a time sink for me, and I didn’t progress any further after getting 8 marks in the first 30 minutes of the contest.

Getting stuck on P1, I jumped to P2. It was an interactive problem, and my task was to construct the longest path in a graph with the property that among any three vertices, there exists an edge connecting two of them. The first thought I had was: Isn’t this NP-hard? This would mean that the special property guarantees an easy way to find the longest path in a connected component. Maybe it guarantees a Hamiltonian path? My instinct is indeed correct and I managed to grab 60 points on the problem, where I am allowed to have full information on the graph. An optimisation that came into my mind was binary search, which would give me 10 more points, but after several failed attempts I decided to move on to P3.

P3 looks really difficult at first sight, but I can get 25 points for the much easier version. I had roughly 30-60 minutes left after grabbing the 6 easy points, so I put in all my effort to get to 20+ points. Unfortunately, I kept getting WA (more than 10 times I think) and it was the most stressful period of the entire day. In the end, I didn’t manage to solve the subtask. My final score was 8-60-6, slightly above the top 50%. It was well below my goal of getting 100+ points, but at least I have a guaranteed HM and a tiny chance of silver.

Yong Li’s Perspective:

After looking at the problem statements, I also thought P1 was the most doable. I tried it and had many errors. I’m pretty sure that I had an idea for P1 but somehow had bugs. Then I moved forward to P3. Then got only 8 points for P3(sub 1). I was quite panicked at this point. Then I looked at P2 and also had an idea for 60 points, which also had errors as well. The contest soon ended and I was actually quite demotivated after the contest. Unlucky day.

Post-contest

After the contest, we played at the Jane Street hub with some other countries. Here’s a game of Quoridor where we accidentally drew a horse/llama (look sideways) with the walls.

Quoridor

Day 4: Excursion Day 1

We went to the Ópusztaszer Heritage park.

Group photo in front of a hut. Happy Malaysia Day!

Group photo in front of a hut. Happy Malaysia Day!

Group photo with everyone

Group photo with everyone

There were tents around with a lot of activities, such as making this wool ball:

Wool ball

There were a lot of things to see:

Statues

Statues

Windmills

Our team leaders in front of Windmills

Some building

Some building

Some ship named Ponty?

Some ship named Ponty?

Day 5: Contest Day 2

Day 2 tasks: beechtree, overtaking, robot.

Hua Zhi’s Perspective:

Day 2 was more chaotic than I thought.

After reading the problems, it was clear that it was not hard to get 39 points in problem 2. However, I was really attracted by problem 3.

I really like problem 3. I guessed that the author was the same author who created “Prisoners” last year (I was right)! It was not easy (but it definitely was my type of problem, as was the case with Prisoners), and I really enjoyed it while I solved the subtasks.

I had to stop myself after I spent 2 hours on problem 3 without progress on the other problems. I continued with problem 1 (which I had absolutely no idea how to approach). I started by solving the brute force subtask, then it became increasingly clear that I had no idea how to solve this problem.

I turned to problem 2 implementing my solution. I got a 0. After a 10-minute debugging session, I found the bug (it was missing one line) and I got 39 points. I turned back to problem 1 as I know very well that problem 2 isn’t my forte and I really need some points in problem 1.

I suddenly understood how problem 1 worked (thanks, brain) and proceeded to march to 31 points (only 4 people got more than 31 points!). I tried and implemented other ideas but it didn’t work.

I was extremely worried that it would spoil my ranking (due to problems 1 and 2), but luckily I remained in silver.

Isaac’s Perspective:

At the start of the contest, I set out to spend 30 minutes on each problem before choosing which problem to focus on for the remaining time. I found that problem 2 had an easy 39 point solution, and implemented it easily. The other two problems seemed too hard to implement. I focused on Problem 1, trying to submit some code that would score me a high number of points. However, I did not manage to implement the solution.

1 hour before the end of the contest, I attempted to farm subtasks. I quickly submitted a solution to Subtask 1 of Problem 1 for 9 points, and a solution to Subtask 2 for 9 points, only a minute before the end of the contest. My final score was 14-39-0, a total of 53 points from the second day and 61 points total.

I had not gotten a medal for Malaysia this year. I was let down by the fact that I couldn’t earn any award this year despite me almost getting a silver medal last year. At least I collected more subtasks this year and wasn’t stuck at 0 points.

Kwong Weng’s Perspective:

I slightly changed my strategy compared to Day 1. I went on to read all the problems first before starting to solve them. The reason I don’t do this earlier is to avoid losing focus when solving the problems, because my brain will subconsciously think of the other problems at the same time, which could be quite distracting sometimes. This could be a big issue especially when all 3 problems all have difficult subtasks, it’s more important to focus on only one problem to get a higher score.

After reading the problems, I grabbed the easy 39 points from P2 right away. The full solution for P2 doesn’t seem easy to me so I went on to P3. P3 looks really cool but the implementation appears to be a major hurdle, and it might be a time sink. Therefore I immediately moved on to P1 after solving the easy subtasks. As it turns out, the actual time sink for today was P1. I got some ideas that seem to work in O(N^2), which gives a lot of points, but there turns out to be some loopholes which kept giving me WA. Eventually I spent more than 2-3 hours on P1 and only managed to get 14 points. I got 69 points, slightly lower than day1. I knew that I probably was below the bronze cutoff given how easy it is to get 39 on P2. My guess was indeed right and I was about 10 points away from the bronze cutoff. I felt quite sad, but I guess it’s pretty normal in an olympiad competition like this.

Yong Li’s Perspective:

Same as the first day, I looked at the statements and decided to start with P1. P1 was hard and I kept on trying but nothing much came out from it. Then I moved to P2. I had implementation errors for P2 after trying an hour or so. Then I tried P3. P3 was interesting but insanely hard as well. I came out of the contest hall feeling super down. I guess I’ll work harder next year in Egypt.

Post contest

A picture after the analysis session, with a full-point problem 3 solution in the background

A picture after the analysis session, with a full-point problem 3 solution in the background

Dinner: We had dinner with some Huawei representatives, and we went around the city!

Dinner

City walk

Day 6: Excursion Day 2

We went to Makó Adventure Park and the Szeged Zoo!

Mako Adventure Park

There was a lot of stuff (see link) (Hua Zhi: I think I’m in the video, the one shooting the laser gun)

Szeged Zoo

A lot of animals. Pictures of animals omitted. Here’s a picture of a bread instead.

Chimney Bread

Cultural Night

The cultural night was insane. We sang onstage along with contestants of four other countries.

Singing

Day 7: Closing Ceremony

Knowledge Fair

We learnt about some AI stuff:

AI Talk

We can control cars with our brain:

Hua Zhi controlling a car with his mind Kwong Weng controlling a car with his mind

Closing Ceremony

Hua Zhi got a silver medal!

Hua Zhi receiving his silver medal

Post-Closing Ceremony

We went to the lobby giving out the Malaysian snacks we bought, in exchange for a picture!

Image

We went around the city for the final time before we had to leave early the next morning. It was quite a sad night. Here’s a picture of us with Jean Nguyen, a contestant from Luxembourg which we were very close to:

Szeged Sign

McDonald's

We had McDonald’s for supper

Final Thoughts

Despite the challenges faced during the contests, the journey, friendships formed, and lessons learned made the entire IOI experience invaluable.

Hua Zhi

This was my final IOI. It was enriching and fun as always.

The journey to IOI was, of course, stressful and full of obstacles, but I also met a lot of friends in the process. Sometimes I also wonder if I had made the right decision to join my final IOI as I am already accepted to NUS. However, I pressed through because I knew it would be worth it and I will not regret anything in the end.

The event itself gave us no time to stress about the contest. The food was awesome and we had buffets for every meal. It was all activities and fun in Hungary, with activities and games scheduled all day for us. We made a lot of friends from a lot of countries, including Luxembourg, China, Australia, New Zealand, Singapore, Japan, Turkey, Norway, Belgium, Pakistan, India and others. We were like-minded individuals with a lot in common!

Kwong Weng

This year’s IOI was unexpectedly late (September), which makes my schedule really tight as my A-level exam starts in October. This made me question my choice of going for IOI. Would I regret piling up all my studies, trial examinations and university applications in September? As I started my first day in Szeged, I immediately told myself that, no, I won’t regret it. I absolutely loved the buffet meals provided by the hotel – the beef steak, bacon, fish & chips, and many more. The activities hosted by Jane Street Hub are a blast too, from mind-blowing puzzles and intricate board games to VR games and controlling toy cars using our minds. We even sang on the stage during the cultural night!

One notable difference I had compared to my previous trips, was probably that I got more engaged in the event (all thanks to Hua Zhi and our team leaders). As an introvert, I always felt too shy to approach others and speak to them because it got really awkward sometimes, but now as I have joined more and more such events, I feel more comfortable socialising with others (but of course, there is still a large room for improvement).

Isaac

Compared to last year, I felt that this IOI was better prepared, with a much wider variety of food than last year. I liked that our rooms were connected to each other, so we effectively shared a single room. Even though my performance was terrible, I enjoyed this year’s IOI much more than last year’s.

I am excited to join future IOIs as well, as I have many more attempts to participate. I hope I can improve my strategy from this year and last year, by farming subtasks to use the time more efficiently.

Yong Li

I love this year’s IOI. There were many activities we could enjoy before and after the contest. The room was connected and the food was delicious. We all received many gifts from the IOI and IOI has also given me the opportunities to meet other people of different countries and cultures. Furthermore, the problem set was very high quality and interesting, it’s unfortunate that I performed badly though. However, one thing I have to mention is that the transportation this year was terrible. Nevertheless, this year’s IOI is a very good onsite experience for me and I am looking forward to the future IOIs.

I still have one or two more years of participation in IOI. I sincerely hope that this year’s experience will help me in the future and get a higher score. Bonus: I loved the McDonalds meal.