We can highly recommend the following material for you to train for our olympiad:
If you live close to Zürich and understand German, we recommend the course for high school students: Clevere Algorithmen programmierenTo the Wiki
If you do not have much programming experience we can recommend Edabit. For the first round you can use any programming language. For later rounds you will have to use C++ or Python.
If you want to solve your first SOI tasks, then please take a look at our tasks from former first rounds. You can find them in our task archive. Here are for example the tasks of the first round 2018.
Always in October and November (during the first round), we offer our Introductory Workshops.
Reading and Learning
To dive deep into our challenging topics, we recommend that you read the chapters in our Wiki. They are grouped by the rounds of our contest.
If you want to go deeper into the theory, here are some book recommendations:
- Competitive Programmer’s Handbook by Antti Laaksonen (free as a PDF, very cool and brand new)
- Competitive Programming by Steven Halim
- The Algorithm Design Manual by Steven Skiena
- Looking for a Challenge? task collection of the university of Warsaw
- Algorithms in C by Robert Sedgewick (Addison Wesley)
- Introduction to Algorithms by Thomas H. Cormen (MIT Press)
Train, train and train
Real training cannot be replaced by anything. We recommend that you try to solve as many of our old tasks in the archive as possible! For many of those you can also find master solutions there.To the task archive
There are plenty of websites with thousands of tasks. Many of them also hold regularly live contests:
- Sphere Online Judge (one of the largest collection of tasks)
- USACO (training course of the US team)
- Codeforces (weekly contests on different levels of difficulty)
- Topcoder (incl. tutorials), codechef, HackerRank and codefu
- IOI Archive (on the websites of the past IOIs, you can find the tasks that were given then)