First Round 2012

Results First Round

The following participants qualified for round 2:

Rank Participant Points (max: 60)
1. Johannes Kapfhammer 47.5
2. André Ryser 47
3. Peter Müller 43.5
4. Lukas Roth 31.5
5. Janis Peyer 30.5
6. Marco Keller 26.5
7. Michael Baumann 26
8. Cyrill Künzi 24.5
9. Ulrich Brodowsky 23.5
9. Cedric Münger 23.5
11. Cédric Neukom 23
12. Benjamin Schmid 22
13. Sammy Jäger 21.5
14. Livio Ciorciaro 21
14. Dimitri Wessels 21
16. Ramon Aerne 20
17. Alexander Kayed 18.5
18. Timon Stampfli 15
18. Patrick Eigensatz 15
18. Michael Aerni 15
21. Florian Wernli 14.5
22. Nicolas Da Mutten 14
23. Valentin Hartmann 13.5
24. Florian Eigenmann 12.5
24. Köbi Meier 12.5
26. Lorenz Brun 12
27. Filip Vucelic
28. Christian Schäpper
29. Cedric Tompkin

For the first round of the SOI 2012 we have prepared 6 tricky tasks. There are different kinds of tasks. Three of the tasks are practical tasks: You are asked to write a complete program that solves those tasks and submit the source code. For the two theoretical tasks, the focus is on mathematical aspects that are analyzed by the means of logical considerations in order to develop and write down a detailed solution. The last tasks is a creativity task that asks you to create a program that can interactively compete against the programs of other participants. The task is chosen such that it cannot be solved optimally. But note that even a simple solution scores points.

The tasks can be found here on the website.

Task Type
Posters practical
Euro Crisis practical
Compound practical
Code Analysis theoretical
Army theoretical
Ant Hill creative

Submission and Grading

Ideally, you should submit your program directly via the submit-form linked at each of the task-pages. Either submit the source file directly or, if it consists of multiple files, as a an archive.

If you have problems submitting, you can also send the solutions via email to (please note your full name and login-name in that case). Important: We will confirm your submissions in this case. If you don't get a confirmation try to submit again.

The maximal number of points is the same for each task.

Practical Tasks

You should submit the source code.

Please do not send binary-files, but sourcefiles only! We will not look at binary files. If possible, try to keep your solution in just one file to make evaluation easier. Your source file should have a header with the following information: Solved task, programming language, user name.

Example in C++:

  Task: sample
  Lang: C++
  User: chuck


A program that correctly solves all our test cases within reasonable time (seconds) will receive the maximum score. Note that these testcases are not public, so you do not know them in advance. For the time constraint we are looking at the asymptotic runtime complexity of your program. This generally means you should optimize your run time from months to seconds, but not from 4s to 3s. Moreover your programs can use memory up to a «reasonable» limit (100MB as a rough value).

  • If your code is fast and correct, you will score the maximum (and no extra points can be gained from the documentation).
  • If your program is correct, but slow, you will be awarded partial points depending on how slow it is (also look at partial scoring on the task sheets).
  • If your program is fast but (partially) incorrect, you will score (almost) no points.

Theoretical Tasks

We have created a little howto in case you are asking yourself how a perfect solution of a theoretical task is supposed to look. By all means, also submit your solution if it does not comply perfectly to this guideline, you will still be able to score many points.

You can send your solutions as Plaintext, PDF, Postscript, OpenOffice-Document, Word-Document or as a scanned image.


Your solution will be checked for correctness and completeness. For full score, we expect source code (which can also be pseudo code) and a description of the optimal solution, a «proof» of correctness as well as an estimation of time and memory complexity. Further information to those concepts can be found in the above howto files.

Creativity Task

We provide a server program that can be used to test your programs against each other. As a part of the download we further provide mutually equivalent sample programs in many different programming languages. Those sample programs use a very simple strategy. If there is no implementation in your favorite language, you are encouraged to as for it in our forum. We will then, if possible, write a sample program in that programming language.

You should submit the source code.


A program that usually beats the sample bots gets half of all points. The second half of the points will be awarded during the creativity task tourney on SOI Day based on the ranking list. (SOI Day takes place January 14th, 2012).