First Round 2016

For the first round of SOI 2016, we made 6 challenging tasks. There are different kinds of tasks: Three tasks are practical ones: You should develop a complete program which solves the task, and submit your source code. The two theoretical tasks focus on mathematical aspects, to be analyzed with logical reasoning, in order to explain a solution in prose. But these also have practical sub-tasks. The last task is the creativity task, where you should develop a program which interactively competes against the programs of the other participants. The task is chosen in such a way that it cannot be solved optimally, but even a very simple program will earn some points.

The task descriptions are accessible on this website in the “Contest” menu.

Submission and Grading

You can submit your solutions using the upload forms of each task. What files you have to upload depends on the kind of the task.

For the practical tasks, you can see immediately if your submission was correct, and you get feedback if something is not correct. The theoretical and creative tasks will be graded manually at the end of the first round.

To submit, either directly upload the file with your solution, or if it consists of several files, upload a ZIP archive.

Important: Make sure that you’re registered as a ‘participant’ and that you’re logged in, so that your submissions can be associated to your profile.

If you have any problems with the submission, contact us by email (

In each task, you can get 100 points, so each task has the same weight for the grading.

Practical Tasks

The practical subtasks have immediate feedback this year. To solve a practical task, write a program which solves the taks. You can use any programming language. For each task, you can find a few small examples that you can use to test your program. Once you think that your program works, you can click on the “Download input” button on the website. Then, a text file with many test cases will be downloaded, and you have 5 minutes to solve them with your program. Then, you can upload the output of your program, together with the source code, and you can see if your submission was correct.

Please do not submit compiled programs, only the source code. If possible, only use one source code file, to keep the compilation simple. Your source code file should contain some headers with the following information: Name of the task, programming language, user name.

Example in C++:

  Task: sample
  Lang: C++
  User: chuck


  • Don’t output any text which is not asked for in the task description. If you output additional comments, you won’t get any points!
  • Instead of entering all the input by hand, you can give your program a file to read. In a terminal, enter myprogram < myinputfile.txt. Your program will behave as if you had entered all values in the file myinputfile.txt by hand. Remark: This file redirection works on Linux, Windows and Mac as well. On Windows, the terminal is called “command prompt”.
  • Use long long int correctly, if necessary:

Example in C/C++:

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.
  • If you have any questions, or if there’s something in these explanations you don’t understand, don’t hesitate to conact us by e-mail ( If there’s something you don’t understand, you’re certainly not the only one, and we’re happy to clarify.


Since you run the test cases yourself and only get points if your program solves them correctly, we won’t test your submitted program again. So if the website tells you that you got points for a subtask, you have them for sure. However, we ask that you submit your source code, so that we can inspect it, and ensure that you’ve written it yourself, and that it really solves the given task.

Theoretical Tasks

We made a small guide, in case you wonder what a perfect solution for a theoretical task looks like. Submit your solution in any case, even if it does not respect these guidelines precisely, you can still earn many points.

You can submit your solution as plain text, PDF, Postscript, OpenOffice or Word document, or as a scanned image.


Your solution will be evaluated for correctness and completeness. For full score, some source code (or pseudo code), a description of the optimal solution, a proof of its correctness, and an estimation of the time and memory complexity are required. You can find more information on these points in the HowTo file linked above.

Creativity Task

Just submit the source code of your program.


You will get points according to your program’s performance on the contest at the SOI day. The SOI day will take place on January 9, 2016.