Sunday, July 20, 2025

A 21st century week

Three  international events took place this week: the AWTF, the EGOI and the IMO. I have chosen the AWTF to attend in person (problems, results, top 5 on the left, mirror results, analysis in Japanese, broadcast recording). 6 out of 12 finalists were born in the 20th century, and the highest place the veterans have achieved was place 4. It feels a bit surreal that Andrew and Kevin are the veterans now. The podium places all went to the new generation from China — congratulations on the amazing performance! With rare exceptions, it took the contestants around 2 hours to solve B, C or D, if they could solve one of those at all. Zhou Kangyang, however, collected 2 of those exceptions by solving B and C very fast, and was the only contestant to solve D, so he was in the league of his own on the day.

I want to highlight problem B from the round: you are given n<=100 days and m movies, the i-th movie running from day li to day ri (all pairs (li, ri) are different). Find the sum of the following values: for each of the 2m sets of movies, what is the maximum amount of different movies from that set one can watch, if one only watches at most one movie per day?

The 5th EGOI took place in Germany (problems and analysis, results, top 5 on the left). The scores were very close starting from place 4, but the first three places were separated quite visibly, even if the differences meant solving just a few more subtasks. Congratulations to Paulina, Anastasiia and Clara on the great results!

Problem C from the first day likely allowed many different approaches, including solving it fully on paper or by writing some helper programs: there are n<=50 players playing bingo. Each player will have a card with exactly 12 numbers, each between 1 and 50. Then, all numbers from 1 to 50 will be read out in some order, and the first player whose all 12 numbers have been read out will be declared the winner. Can you design the contents of the players' cards in such a way that there will never be a tie? This is essentially an output-only problem since there are only 50 fully independent test cases (n=1, n=2, ..., n=50). How many of those can you get? Bonus points if you can meaningfully use a computer to make progress.

The IMO 2025 (problems, results, top 5 on the left) is not typically within the scope of this blog, but there were two independent crossover points this time that made me bring it up. First, the skills required to solve IMO problems and the competitive programming problems (especially the AtCoder flavor), although not the same, are quite related, and strong competitors can often do both and move from one area to the other. Second, both areas are now at the forefront of the AI race, as they provide both nice datasets and objective evaluation opportunities for the general reasoning and general problem solving skills. It is unexpected and cool how what used to be a fun hobby now has the world's attention. Congratulations to the IMO 2025 participants who still hold their own against the AI, and I hope to meet some of you at the competitive programming events one day :)

Finally, Codeforces held Order Capital Round 1 to wrap up the week (problems, results, top 5 on the left, analysis). tourist has shown that the 20th century folk still stand a chance, and regained his first place in the overall ratings as a result. Well done, and thanks!

Thanks for reading, and check back next week.

Wednesday, July 16, 2025

AWTF25 heuristic day

As discussed, one had to get assistance from AI to even watch today's AWTF25 heurstic broadcast: you can see an example live automatic translation on the left. It was enough to understand the broadcast in rough terms, but a lot of nuance was likely lost.

For those who missed it, there was not too much suspense in the human competition, as Psyho seemed to be head and shoulders above his competitors, but it was quite close (and possibly still is, since there were only 50 pretests?) between Psyho and OpenAI's automated solver (preliminary exhibition top 5 on the right). The final results will be revealed tomorrow evening Tokyo time together with the Algorithm competition results.

Speaking of which, tune in tomorrow to watch me and Riku commentate on the 5-hour Algorithm finals in English! You can also check out the finalists' presentation. While last year I was 14th on the qualification ranking and could have been a participant, this time I am squarely in the commentator realm. In case you have topic ideas that we could discuss during the 5 hours (while the contestants are stuck on A, as usual), please share in comments!

Tuesday, July 15, 2025

AWTF25 arrival day

AtCoder World Tour Finals 2025 (official website with the participant intros) takes place this week in Tokyo, and it is the fourth cphof-worthy event of the year already!

For the third year running, I was greeted by a weather alert on my arrival in Tokyo, this time for a typhoon like two years ago, and like two years ago the typhoon eventually missed Tokyo completely. It is of course better to be prepared even if nothing happens, than to be unprepared and be caught unaware, so no complaints here :)

Tomorrow (July 16) is the first ever Heuristic finals for AtCoder (announcement), and besides a few familiar faces from the past Marathon/Heuristic competitions it features a whole lot of new stars and an AI competitor to boot! There will be a stream in Japanese, which is not yet my strong side (but maybe that's the language of competitive programming of the future, given how important AtCoder and the community in Japan are for moving our entire field forward), but I still expect it to be exciting to watch, so tune in tomorrow!

Sunday, March 2, 2025

EUC 2025

Once again the ICPC Quest brings this blog out of hibernation :) So, as the quest requires, greetings from Porto where the 2025 ICPC European Championship (EUC) takes place this Sunday!

The EUC is a new contest that was launched last year, so this is the second edition. It brings together the top teams from 4 European regionals, providing them both an additional qualification path to the ICPC World Finals (detailed rules), and a significant onsite competition of its own, giving many teams who will not make it to the World Finals an opportunity to meet other students and enjoy the atmosphere of a big international competition, while keeping the travel costs in check. I am very happy to support this competition by volunteering as a judge for the second time!

We are also running a mirror contest on Codeforces, so come try it in a few hours! I think the problems are quite nice.

Friday, September 20, 2024

A baursak week

The ICPC World Finals 2024 in Astana was the main event of this week (problems, results, top 12 on the left, broadcast recording, our stream recording). On our stream things did not go very well, as we struggled a lot getting problems accepted (only one + out of 9), so after getting 4 problems in the last 70 minutes including one in the last minute, we arrived at 9 problems with the penalty of 2238, which would give us a clear first place in the contest based on penalty time only :) With the usual scoring, it would only be enough for a silver medal.

Among the people born in the 21st century, the Peking University team was very fast on the easier problems, had very few incorrect attempts, in the end earning the championship title with a huge margin of almost 300 penalty minutes. Big congratulations to them and to all medalists! And of course huge thanks to all #ICPCAstana organizers, you did a great job!

From the 12 medalists, 1 came from the Northern Eurasia division, 2 from the North America division, 4 from the Asia East division and 5 from the Asia Pacific division. Is it the best result ever for the Asia Pacific division?.. Sadly, the ETH Zürich team and other teams from our Europe division stopped at 7 problems solved and therefore just shy of the medal boundary.

Problem D in this round required a nice and somewhat unexpected observation. You are given n segments (n<=200000) on the number line. You need to pick one number from each segment, and then pair up some of those numbers in such a way that two numbers in a pair always add up to the given sum s. What is the maximum number of pairs you can form?

One more thing that I did not mention yet about the ICPC World Finals Astana is the CLI symposium. It is a collection of talks by the people that run various aspects of the competitive programming community, for example this year's speakers were Nikolay Kalinin, Riku Kawasaki, Suhyun Park, Antti Laaksonen, Gennady Korotkevich, Andrey Stankevich, Yonghui Wu, Miguel Revilla Rodriguez, Joshua Andersson, Matt Ellis and Christian Yongwhan Lim. You can watch their talks on the ICPC Live channel as well: 1, 2, 3. They are not necessarily at the level of a TED talk, but I think they can provide interesting insights into the thinking of the speakers and into the functioning of the community.

Thanks for reading, and check back next week!

Wednesday, September 18, 2024

ICPC Astana mirror stream

Today was the dress rehearsal day at #ICPCAstana, which means even more time for socializing and side events, the most spontaneously designed of which was Mike Mirzayanov's pushup challenge (recording). I was expecting that there'd be a contestant that would easily beat Mike, but it was not even close as Mike still had a lot of strength left when everybody else dropped out (the last 3 pictured on the left). Well done to all participants!

It is finally getting serious tomorrow, with the ICPC World Finals 2024 starting around 11:00 Astana time (official live stream, scoreboard and problems, mirror contest, list of teams 1, list of teams 2). As usual, there are many very strong teams that have been practicing specifically for this event, so it is quite hard to predict tomorrow's standings. We can just relax and enjoy watching the contest. But of course go #ETH!

As the custom goes (2017, 2018, 2019, 2020, 2022), I have teamed up with Kevin and Nikolay to participate in the mirror and stream the proceedings. Here is a link to our stream, and in case something goes wrong, you can look for new instances of the stream on my Youtube channel and/or my Twitch. Tune in tomorrow around 11:00 Astana time (in the past, the round has started both a bit later and a bit earlier)!

Tuesday, September 17, 2024

ICPC Astana settling in

Most participants arrived in Astana over the weekend, but for me yesterday was the travel day. It started still in the dark (photo on the left), and when I arrived in Astana it was dark again. I also did not meet any other World Finals participants on the way, so it was pretty lonely. Having arrived in Astana though, I was instantly impressed by how smoothly everything goes, both with respect to ICPC and Astana in general, and of course I immediately got to meet some old friends, even at 22:00 on the hotel dinner. 

While I was in the air, the team registration, the talk by ecnerwala and the opening ceremony took place, which were also recorded (1, 2, 3). As part of the registration, team photos were taken, for the history but also for use in the World Finals broadcast on Thursday. On the right you can see the ETH Zürich team which graciously agreed to take me with them to Astana. Go ETH!

Today is a pretty chill day, with a few events such as the Tech Trek with another round of team Kotlin coding (recording) and the ICPC challenge (recording), but where most people just hang around in the big hall (a photo from the official gallery on the left) which reminds me a lot about the TopCoder Open onsite arenas back in the days, only it's at least 10x bigger this time: it is right next door to the contest floor, there is food, sponsor booths, but also a lot of space to just talk or play games with your friends. I think it is a perfect setup for an onsite contest!

One other thing already going on for three days is the ICPC Quest, which this post is also part of. There are various challenges aimed at people getting to know one another, and creating more content about the World Finals, and completing those challenges gets one some plush camels. I did not take part in it in the past, but I've decided to give it a go this year, and it's fun! I'm including #ICPCAstana in this post to fulfill one of the quest tasks :)

Thanks for reading, and check back tomorrow!