Tag Archives: education

Nordic Collegiate Programming Contest NCPC 2026

My favourite problem at this year’s NCPC was this, a natural “k-discounted shortest path problem”: GIven a directed graph GG with nonnegative edge costs, source and target vertices s,t∈V(G)s,t \in V(G) and a integer kk, determine the cost of a shortest s,ts,t-path where you get to discard kk of the cheapest edges on the path. A real gem, authored by Pål Grønås Drange. Set aside an hour to think about this, then solve it here: https://open.kattis.com/problems/judiciousjourney .

Contest site: https://ncpc26.kattis.com/contests/ncpc26

NCPC web page: https://nordic.icpc.io/ncpc2026/

I had a lot of fun serving in the jury this year (which means developing the problems that teams had to solve); I came up with a few of the easier problems and helped realising some of the others.

I was also involved in running the Copenhagen site at ITU, where students from four different universities with campuses in the Greater Copenhagen area convened. Excellent atmosphere, splendid catering from the sponsors Netcompany and Jobindex. We also had the winning student team on side, 3 Little 3 Late.

Statistics

612 teams participated from the Nordic and Baltic countries.

Over the last few years, participation at NCPC is rather stable, with just over 200 students attending.

Problem balance

I am primarily interested in problem balance: NCPC should appeal to people who just learned to programme as well as experts with a PhDs in problem solving-related sciences. Ideally everybody has fun and is engaged for the full five hours. Below are the difficulty staircases for NCPC over the last decade. It shows how many of the teams solved each problem. You can se that in 2015, 75% of the teams solved only two problems. We’ve become a lot better at smooth problem ladders, with many problems solved by many teams, and a gentle progression.

Also, the number of solved problems per team looks good, the modal team solved 4-5 problems in 2026 (compared to 2 problems in 2015).

Finally, you want to design the contest so that everybody is engaged for the full five hours. (Rather than giving up after 120 minutes because the rest of the problem set requires algorithmic tricks that aren’t in your toolbox.)

Again, I think this looks good: a third of the teams still got a problem accepted in the 5th hour of the event.

There are no big lessons to be drawn from these numbers, and also no warning signs.