NCPC 2019

Saturday October 5th 11:00-16:00 CEST

Participating sites

Back to main NCPC page
a part of
ICPC logo



The contest was held October 5th, 11:00-16:00 CEST. The winning team was Omogen Heap from KTH Royal Institute of Technology, which solved 10 out of 11 problems. Congratulations!

  • Final results
  • Problem set [PDF].
  • Slides describing solutions [PDF].
  • Judges' input and output [tar.bz2 (108 MB)].
  • Judges' solutions [tar.bz2].
  • Packaged problems (110 MB) including testdata, solutions, wrong solutions, output validators, input generators, problem statement sources, etc.
  • All material are copyright 2019 by the NCPC 2019 jury. They are licensed under the Creative Commons BY-SA v3.0 license.

The winners will be Nordic Champions in programming. Universities may select student teams to go to NWERC, the regional finals in the ICPC contest. NCPC also encompasses national and local championships.

Join NCPC on Facebook and spread the word to your friends and colleagues!

There will be a warmup contest at to help you practice on Saturday September 28.

There will be a public contest using the same problems as NCPC-at The contest starts at 11.00 CEST, i.e. at the same time as NCPC. Do not use the public contest if you are participating in NCPC officially at a contest site!

NCPC will use the Kattis automatic judging system provided by Kattis. Every team will get a new account on the day of the competition.

Organisers should review the NCPC-Site-HOWTO.

NCPC director: Fredrik Niemelä (Kattis)
Head of Jury: Per Austrin (KTH Royal Institute of Technology / Kattis)
Technical Director: Pehr Söderman (Kattis)

Participating sites


Below is a list of sites that will hopefully join NCPC in 2019. (+ marks verified sites.) Follow the links to get local information such as when and where to meet.

+ University of Copenhagen Anne Honum <ahhj>
+ Aarhus University Asger Hautop Drewsen <drewsen>
+ Aalborg University Anne Honum <ahhj>
+ Tallinn University of Technology Ago Luberg <ago.luberg>
+ University of Tartu Meelis Kull <meelis.kull>
+ Aalto University Jukka Suomela <jukka.suomela>
+ University of Helsinki Antti Laaksonen <ahslaaks>
+ Reykjavik University Bjarki Ágúst Guðmundsson <suprdewd>
+ NTNU Jakob Westermoen <jakob>
+ University of Bergen Torstein Jarl Strømme <torsteins>
University of Oslo Arne Tobias Malkenes Ødegaard
Sweden Fredrik Niemelä <>
+ Karlstad University Jonathan Vestin <jonathan.vestin>
+ Linköpings universitet Olav Övrebö <ordf>
+ Luleå Institute of Technology Anton Johansson <anton.johansson>
+ Lund University Roy Andersson <roy.andersson>
+ KTH Royal Institute of Technology Joseph Swernofsky <josephsw>
+ Umeå University Tomas Forsman <stric>



In short: Teams of up to three persons try to solve as many problems as possible from a set, without external help.

The rules for this contest is given by the ICPC regional contest rules, with the following clarifications and additions:

Who may compete

The teams competing consist of up to three persons. The competition is open to everybody, as long as they belong to some Nordic entity in some sense (all belong a given university or company, or all just come from the same country).

ICPC eligibility

Only ICPC eligible student teams compete in the ICPC division. These may qualify for the regional finals (NWERC), and further to the ICPC World Finals. Basically, any student who started his/her university/college studies in 2014 or later is eligible to compete. For exceptions such as retaken years, military service and so on, please refer to the ICPC rules. Persons who have competed in five regional finals already, or two world finals, may not compete in the ICPC division.

What you may bring to the contest floor

  • Any written material (Books, manuals, handwritten notes, printed notes, etc).
  • Pens, pencils, blank paper, stapler and other useful non-electronic office equipment.
  • NO material in electronic form (CDs, USB pen and so on).
  • NO electronic devices (Cellular phone, PDA and so on).

What you may use during the contest

  • What you brought to the contest floor (see above).
  • Your assigned (single) computer.
  • The specified system for submitting solutions.
  • Printers designated by the organiser.
  • Things given to you by the contest organiser.
  • Electronic content specified by the organiser, such as language APIs and compiler manuals.
  • Compilers and IDEs specified by the organiser.
  • Non-programmable tools which are a natural part of the working environment (such as diff and less).
  • NO other compilers or interpreters for programming languages.

Behaviour during the contest

Before the contest begins, you are allowed to log in on your assigned computer, and log in on the submission system. You may do nothing else with the computer (such as starting to write code). You may not touch the problem set before the contest has started.

Contestants are only allowed to communicate with members of their own team, and the organisers of the contest. You may not surf the web (except for allowed content), read e-mail, chat on Slack, or similar things. The only network traffic you may generate is from submitting problem solutions, and access to content specified by the local organisers.

The contest

News for 2019: COBOL, Common Lisp, OCaml and Rust has been added to the list of available programming languages. Scala has been removed.

The problem set consists of a number of problems (usually 8-12). The problem set will be in English, and given to the participating teams when the contest begins. For each of these problems, you are to write a program in C, C++, C#, COBOL, Go, Haskell, Java, JavaScript (Node.js or SpiderMonkey), Kotlin, Common Lisp, Objective-C, OCaml, Pascal, PHP, Prolog, Python (2 or 3), Ruby, or Rust. The jury guarantees that each problem is solvable in C++ and Java. No guarantees for other languages are given due to the large number of allowed languages, however the jury guarantees that for every language there is at least one problem solvable in that language (it has always been the case that several of the problems were solvable in all available languages, but there is no guarantee of this)

The submitted programs must read from standard input (stdin) and write to standard output (stdout), unless otherwise stated. After you have written a solution, you may submit it using the specified submission system.

The team that solves the most problems correctly wins. If two teams solve the same number of problems, the one with the lowest total time wins. If two top teams end up with the same number of problems solved and the same total time, then the team with the lowest time on a single problem is ranked higher. If two teams solve the same number of problems, with the same total time, and the same time on all problems, it is a draw. The time for a given problem is the time from the beginning of the contest to the time when the first correct solution was submitted, plus 20 minutes for each incorrect submission of that problem. The total time is the sum of the times for all solved problems, meaning you will not get extra time for a problem you never submit a correct solution to.

If you feel that a problem definition is ambiguous, you may submit a clarification request via the submission system. If the judges think there is no ambiguity, you will get a short answer stating this. Otherwise, the judges will write a clarification, that will be sent to all teams at all sites in the contest.