Information for members of EIO organizing team

The main activities of EIO organizing committee are:

  1. Creating tasks for various contests, and organizing these contests.
  2. Organizing workshops ("õppesessioonid") for students to learn about contest programming.

Tasks and contests

There are 4 main contests during the school year:

Total of 32 tasks per season.

Task creation process

Our process is following:

Creating a good task

For beginners, it is fine to use any creative programming task (example: count valid moves for a chess piece).

For advanced tasks, anything covered by IOI syllabus is fair game. Usually, there would be a brute-force method of solving the problem, and a clever algorithm method. The best tasks have multiple tiers of possible solutions (e.g. O(2^N), O(N^3), O(N*logN) complexity).

Creating tests

Make your tests as thorough as possible, covering various special cases, minimum/maximum inputs etc. If your task has multiple possible solutions with different complexity, make sure the scoring reflects it.

For example, if there's a brute force solution and a clever solution then a good rule of thumb is to give 50% of points for the brute-force (but correct) solution, and 50% for the fast solution. I there's a slow, medium and fast colution, you can do 40%-30%-30% etc.

Creating custom checkers

If the output of the task is always the same, you don't need to write a checker. However, if there are multiple possible solutions, you can create a custom checker to assess the solution's correctness.

Sample contest timeline


Workshops usually have 6 academic hours of work per day. Ideally, about 40% of time would be spent by the lecturer, explaining the material, and 60% would be spent on practical work. Seek out sample problems for the topics. is a good resource.

Below is a sample division of topics between the workshops. This is not set in stone; bits and pieces may be shifted around. The "UVA" tag denotes task numbers at

Traditionally, we have organized the following workshops:

See also:

Lehekülg viimati muudetud September 02, 2017, at 11:37 PM