First Round 2013

Results First Round

The following participants qualified for round 2:

Rank Participant Points (max: 60)
1. Timo Bräm 47.5
2. Johannes Kapfhammer 44.5
3. Florian Schroeder 42.5
3. Peter Müller 42.5
5. Timon Stampfli 42
6. Benjamin Schmid 41
7. Fabian Lyck 40.5
8. Cédric Neukom 38.5
9. Lukas Roth 33.5
10. Pascal Sommer 31.5
10. Sander Staal 31.5
12. Stephan Leuch 30.5
13. Cedric Münger 29
13. Lorenz Brun 29
13. Thomas Käser 29
16. Viviane Kehl 24
17. Raphael Appenzeller 20
18. Jean-Marie Bise 19
19. Filip Vucelic 17.5
20. Ruben Jungius 14
21. Andrina Denzler 13
21. Florian Wernli 13
23. Cyrill Künzi 12
23. Luc Haller 12
25. Elias Boschung 11.5
26. Michael Aerni 10
27. Marcel Würsten
28. Philipp Muggli
29. Patrick Eigensatz

For the first round of the SOI 2013 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
Clocks practical
Two Tables practical
Piano practical
Code Analysis theoretical
ATM theoretical
Who wants to be a billionaire 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.

Important: Make sure your role is set to 'participant' in your Profile, so that you are able to submit.

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
  • Do not output anything that is not asked for in the task description. If you output stuff like «Please enter W and H:», you will lose points!
  • Instead of entering all the input by hand, you can feed your program an input file. In a terminal, type myprogram < myinputfile.txt . Your program will behave as if you had entered all the values in the file myinputfile.txt by hand. Note that file redirection with «<» works on any Linux-like system, but also on Mac and on Windows. On Windows, the terminal is called «Command Prompt» or «Eingabeaufforderung».
  • Correctly use long long int where 32-bit int is not large enough:
      int w,h;
      scanf("%d %d", &w, &h);
      long long int area = w * (long long int)h;
      printf("%lld", area);
  • Test your program before submitting it (also using large test cases, create your own test cases)
  • If you have any questions, or if you do not understand the above explanations, don't hesitate to ask questions in the forum! If something is not clear for you, you're certainly not the only one!

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

You should submit the source code.


Points will be awarded during the creativity task tourney on SOI Day based on the ranking list. (SOI Day takes place January 12, 2013).