First Round 2014

Results First Round

The following participants qualified for round 2:

Rank Participant Points (max: 60)
1. Fabian Lyck 50
2. Timon Stampfli 48
3. Luca Mondada 40.5
4. Raphael Fischer 38.5
5. Ian Boschung 37
5. Benjamin Schmid 37
7. Kasimir Tanner 33
8. Joël Mathys 27
9. Lorenz Widmer 25.5
10. Elias Boschung 22
10. Zheng Chen Man 22
12. Mugeeb Al-Rahman Hassan 21.5
12. Kevin De Keyser 21.5
14. Michael Moerschell 20
15. Jonas Gude 19.5
16. Noah Menzi 18
17. Raphael Husistein 13
17. Vincent Pasquier 13
19. Marcel Würsten 11.5
20. Gua Hao Khov
21. Ruben Jungius
21. Coralie Busse-Grawitz
23. Sandro Lutz
24. Hanna Müller
25. Miro Haller
25. Damian Berwert
25. Tim Matter
25. Jonas Anderhalden
29. Mihajlo Djokic

For the first round of the SOI 2014 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
Symmetric Numbers practical
Watchtower practical
Taekwondo practical
Candy Necklace theoretical
Hotel Rooms theoretical
Cops and Robbers 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 round1@soi.ch (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
*/
Instructions
  • 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!
Grading

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.

Grading

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.

Grading

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