ICPC World Finals 2025

Several days of sightseeing around the World Finals in Baku.

For me, everything at that year’s World Finals finally went according to plan. Nothing went wrong from beginning to end—an outcome that had become surprisingly difficult to achieve.

As usual, the journey began with the visa. I was exempt, so I could skip that step entirely. I later heard that quite a few other people had trouble, not with the visa itself but with paying the fee. The website supposedly accepted credit cards online, yet each payment attempt was blocked by the card issuer’s fraud controls. Switching cards produced the same result. People eventually either found a card from a bank with unusually permissive controls or called customer service for help. In any case, it was tedious. I have no idea why the visa-payment site triggered so many alarms.

None of this had anything to do with me—or so I thought. Once I reached Baku, the problem came back to bite me. It was not specific to the visa site; it seemed to be a broader issue with Azerbaijani websites. More on that later.

I had learned my lesson in Egypt. Since I was making the trip, I intended to see the surrounding area. I arrived a day early, paid for the extra hotel night myself, and booked a day tour. I later realized that I had still been thinking too modestly. Someone else had arrived two weeks early and traveled through the nearby Caucasus—Azerbaijan, Georgia, and Armenia. To be honest, that struck me as somewhat risky, given that Azerbaijan and Armenia had still been at war only a few years earlier. By then, however, visiting each country separately at least appeared to present no particular problem.

Armenia provided another interesting footnote. Six months before Azerbaijan was officially announced as the host, Armenia had issued a notice saying it had submitted a bid for the 2025 World Finals. At the time there was almost no information online; searching Google for the 2025 venue mostly produced predictions that it would be Armenia. Azerbaijan ultimately got the event instead. Given the two countries’ recent history, one could not help wondering whether any of these developments were connected. I had no idea, but the sequence was certainly intriguing.

On my second day in Azerbaijan, I set out on the day tour. Our first stop was the Gobustan rock-art site, whose history reaches back thousands of years.

There I saw many unusual carvings.

There was also this image, which was fairly clearly not prehistoric.

We were told that snakes lived in the area, so the permitted paths were marked off with ropes. An unidentified green powder had also been scattered beside the paths, supposedly to repel them.

Next came the mud volcanoes. As the name suggests, these volcanoes erupt with mud.

The weather was intensely hot, yet the mud was cold. Our guide suggested touching it, so I did. Others in the group spread it over their arms and even their faces. Were they trying to turn a natural mud volcano into a facial treatment?

We then came to what is billed as the world’s first industrially drilled oil well, dating to 1846.

We also saw this enormous flag. I looked it up and discovered that it really had once held a world record. Somehow, it was a landmark in its own right. There was little wind that day, which made the flag difficult to photograph.

Next was Yanar Dag, the Burning Mountain, where natural flames burn continuously along the hillside. The mountain was, quite literally, on fire.

Then came Ateshgah, the Fire Temple, a religious site historically associated with fire-worship traditions. In the past, escaping natural gas kept flames burning there for years. According to our guide, the natural flame later went out, and the fire now burns on gas delivered through an underground pipe.

That concluded the day’s tour. We had managed to collect an impressive number of landmarks.

On the day before the contest, after all our work was complete, two Europeans and I decided to explore the city, with Baku’s Old City as the main destination. We began investigating how to get there, and the earlier payment problem came back to find me. We downloaded a local app and tried to buy some combination of transit card and metro tickets online. The credit card was declined immediately. Every attempt failed. Eventually we stopped trying and decided to go to the metro station and improvise.

How did one use the metro? None of us knew. According to my companions, working that out was part of the journey. We walked toward the station. Along the way, some local Azerbaijani students stopped us and asked how to improve at competitive programming. We offered a variety of familiar advice, all of which eventually reduced to the same conclusion: practice more.

Their uncertainty was understandable. New students always go through that stage. Codeforces now contains well over ten thousand problems even before Gym is counted. The scale alone can be discouraging.

At the metro station, we discovered that tickets could only be purchased with cash. We had none. A passerby saw the three of us looking thoroughly confused and gave us a metro card with exactly enough credit for two rides. We did not really understand what he said; he simply handed us the card.

We still needed two more fares. That meant finding an ATM outside and withdrawing the equivalent of roughly twenty dollars. At that amount, the debit-card fee may well have exceeded the money we withdrew.

We took the metro to Baku’s Old City and spent an hour exploring on foot.

Once we finished, it was time to decide how to return. The two Europeans thought the weather was pleasant and proposed walking back. So the three of us set out for the hotel. In my view it was extremely hot, the sun was fierce, and I had not applied sunscreen. They appeared entirely unconcerned.

Along the way, we passed several buildings with striking designs.

The most remarkable recent example, however, was the Heydar Aliyev Center beside the contest venue. By comparison, the venue itself hardly seemed worth photographing.

Contest day arrived without incident.

There was no one outside the venue, so I took the opportunity for a photograph.

The contest itself also concluded without incident. Congratulations to St. Petersburg State University, the only team to solve eleven problems, on winning the championship. Their ability to solve the problem designed to prevent an early sweep showed that the title was thoroughly deserved.

That problem had been in preparation since the previous year and was one of two intended to keep even the strongest teams busy until late in the contest. Before the 2024 event, we concluded that it was nowhere near ready and held it back. After another year of preparation and simplification, many of the more complex cases in its original form had been removed. As the problem author put it, “We have done everything we can to make this problem solvable.” Then someone solved it. One should never underestimate the strength of a World Finals team.

Another notable feature of that World Finals was that AI systems had applied to take part in an unofficial evaluation alongside the contest. The organizers provided OpenAI and Google DeepMind with separate judging machines so that each could work through the contest independently. What followed was decisive. Google DeepMind began extremely well and quickly solved ten problems, by which point the organizers were already becoming nervous. OpenAI then swept the entire problem set—AK’d the contest—and the comparison was no longer close. The organizers required both companies to wait until two weeks after the contest before publishing results and details. My guess was that they did not want the AI results to take attention away from the student competitors.

I later spoke with people from Google DeepMind. Given the level AI had reached, perhaps AI companies should no longer be applying for permission to participate. Instead, the organizers would need to provide a dedicated platform for AI entrants. How quickly the tables had turned.

The story continued a month after the contest, when we decided to hold a retrospective meeting. We had not held one even after the major crisis the previous year, so this meeting conveniently covered that as well. The central question was how we had managed to produce so many problems for ourselves. The conclusion was that more people should review the candidates during problem selection. We therefore decided to add members to the problem selection committee.

First, tourist clearly needed to join. His breadth of experience made him especially good at spotting issues—particularly if a similar problem had appeared in another contest, something he was more likely than anyone else to recognize. Most of the other judges rarely competed online.

One senior judge then suggested simply adding every judge from that year’s contest. Another pointed out that the discussion would become unmanageable when the final problem set had to be selected. The eventual decision was that everyone else could volunteer.

So I volunteered. It turned out that I was the only volunteer, which was mildly awkward.