Unfortunately this page is a bit out of date. We plan to update it.


  • Contact the NCPC director Fredrik Niemelä<> and announce your interest.
  • Get familiar with team registration procedures (see below).
  • Get help needed during competition (judges etc). Might be zero extras on a small site.
  • Reserve computer lab for the competition day (usually the first Saturday in October).
  • Check that room is accessible, and that lights and ventilation will work during the competition.
  • If necessary, create system user accounts before contest, and print user-names and passwords to hand out.
  • Get familiar with the Kattis system, which will be used for submitting problems in the contest (Instructions for the Kattis contest system, A Kattis tutorial).
  • Optional: Organise practice session.
  • Optional: Get balloons.
  • Optional: Order food.
  • Optional: Buy prices.
  • Check if department will sponsor trip to the regionals for winning team.
  • Optional: Announce the contest during lectures in relevant courses.
  • Optional: Put up posters.
  • Advance winner to regionals.


First of all, you need to tell the national organiser that you are interested in hosting the contest at your school or university.

If you think you are going to have more than just a few contestants, you should probably get some people to reserve the day for helping out. If there are 20 teams, you will not have time to process their submissions, serve them pizza, and fix the minor problems that surface all by yourself.

Practical issues

Reserving a computer lab

You should reserve a computer lab for the contest. Make sure that all contestants have access to the lab, and that lights and ventilation will be on at the time of the contest. Make sure that the computers in the lab have all the needed software. It is important to try to match the versions of compilers used by Kattis as much as possible (Kattis techinfo).

Team registration

  1. Make sure you have an account at":
    • If you don't have an account created after april 2008 you need to register yourself at /
    • With your personal account you will be able to register/admin your teams as coach. But you will also be able to manage your sites if you are a site director using the same account.
  2. Registration is done using the ICPC registration system.
    • The teams register themselves and you as the site director only need to approve them. To approve a team you log on to the ICPC registration system and go to the site director part (under contests in the dashboard). You have site director access if the NCPC director has given you one. Choose "reservations", and mark teams as accepted.
    • A few days before the contest the contest director will send out a request for all non ICPC-eligible teams to inform the contest directors about it.

Advertising the contest

How much should advertise the contest depends on how much effort you are willing to put into it. Even though the contest is already established and well known among some, one of its main goals is to promote the interest in programming among all students.

Your can ask lecturers in introductory programming courses, and especially in courses focused on algorithms, to give you five minutes to introduce the contest. You could perhaps solve an example problem.

If there are e-mail lists for students at your department, you could use these. Think of what faculties are relevant (computer science, electrical engineering, math, and so on). If you are unsure, ask the administration at your department what lists you may use.

It might also be good to put up some posters. Ask your national organiser if he has any, or make some yourself.

Remember to tell:

  • When is the contest.
  • Optional: When is the warm-up round.
  • Where will the contest be held.
  • Who are allowed to compete.
  • Who are qualified to compete (anybody who have taken an introductory programming course, or have equivalent skills).
  • Whether food will be served during the contest.
  • Optional: What the local winners will receive (prizes, trip to regionals).
  • Where to find more information.

Practice Session (Optional, but recommended)

This should be skipped only if you organise a small site.

Many sites have a practice session a week or so before the contest. It is good both for the students and for the organisers. The easiest is to pick a problem set from one of:

Remember to reserve the computer lab for the practise session also.

Balloons (Optional)

In ACM ICPC contests, it is common that each team get a balloon for each task they solve. The balloons are put up at the teams working place. Each task correspond to a balloon of a different colour. If possible, get balloons filled with helium. At a large site, you need one person just for delivering the balloons. Kattis supports output for balloons, but it is also advisable to keep paper documentation, especially regarding which team is located where, and which team already got balloon for what).

Balloons are not mandatory.

Food (Optional)

If you can get funding, either from your department or the national organisation, it is a good idea to serve some food either during or after the contest. The easiest and cheapest is probably to buy coke at a supermarket and have pizza delivered. If you serve the pizza during the contest, check whether you are allowed to eat at the computers in the lab. If not, check if there is somewhere close and accessible they can consume their pizza. The easiest is maybe to serve the food after the contest, when you go through the problems, give out prices etc.

Remember to keep receipts for all expenses.

Prizes (Optional)

Prices for the best local teams are not mandatory. Ask if your department can fund it. A good option is books on programming and related topics.

If you want to, you could also make diplomas for the contestants.

Media (Optional)

The contact with media is usually handled by the national coordinator, but if your department is interested in the publicity, it is a good idea to notify the local media about the contest.

Technical information


The on-line automated judge system Kattis is used to run (judge) the contestants' programs (submissions). Each contest is a single site on Kattis with a unique link. For example NCPC 2019 had the link More information about how Kattis works can be found on the help page.

The site director will get accounts for all the contestants the day before the contest. The site director will also get 5 extra accounts for last minute teams.

During the contest

Instructions regarding the competition day:
  1. Make sure that each contestant account is reset and only contains the sample input and output for all problems (will be distributed with the problem set tomorrow). I suggest you create one directory for each problem. At each work station place three copies of the problem set in an envelop.
  2. Read the rules and inform the contestants before the competition about what is allowed and what is not. For example, it is not allowed to use any other programming languages and code generation tools besides the allowed languages. The teams are allowed to use those shells, editors and IDEs that you provide them with. The contestants may use the documentation provided in Kattis (including STL and Java doc) as well as man pages if you have them.
  3. Before the competition starts the contestants are allowed to log in, start a browser, start an editor if they want and log in on Kattis. Nothing else. No configuration files may be edited and the problem set is not to be touched.
  4. All contest directors should report to me that they are ready to start the competition at the latest 10.50 Swedish time. If you have problems please report those as soon as possible. You can report on the IRC channel (, through email (, or by calling me (+46-700-89 56 89). Since there are many sites this year we will probably start the contest even if one or two sites are silent. Unless something unexpected happens KTH will make a countdown on the IRC channel and at 11.00.00 local KTH time the competition will start.
  5. When the contest is started the contestants are allowed to open the problem set and start using the computer. Do your best to monitor that they do not use any illegal programs or surf the web. All the documentation that they are allowed to use is linked from their Kattis account.
  6. All clarifications are handled through Kattis. The head judge is responsible for answering all clarifications. They might be discussed on IRC if needed. If the answer is of general interest then an email will be sent to all directors.
  7. When the competition is over and the final result is ready, I will announce it on IRC and to all directors by email. This is expected to be shortly after 16.00 unless something unexpected happens.

After the contest

Ceremony (Optional)

After the contest, it is nice if you have a small ceremony where you announce the results, and give out prices if you have any. If you have the opportunity, you should also go through the problems.

Advancing teams to NWERC

In some countries, the best team is sponsored by the national organiser to go to the regional finals. In addition, the large educational institutions sponsor their best team. Check with your national organiser and your department what is possible.

There are three scenarios if you (as a coach) are going to send team(s) to NWERC:

  1. You will only send team(s) that have competed in NCPC:
    Solution: Use the promoting teams link on your site director part of If this doesn't work - Inform the Contest Manager ( which teams you want to advance and he will take care of this.
  2. You will send both team(s) that have competed in NCPC and other team(s) that haven't:
    Solution: Use the promoting teams link on your site director part of for the NCPC teams. If this doesn't work - Inform the Contest Manager ( which teams you want to advance and he will take care of this. For the non NCPC teams, just register them directly to the regional contest (NWERC).
  3. You will only send teams that haven't competed in NCPC:
    Solution: Just register your teams directly to the regional contest (NWERC).

Editor: Måns Magnusson