This site allows you to practise your programming skills using a variety of competition-style problems. These problems follow a similar style to what you would find in an AIO (Australian Informatics Olympiad) or an IOI (International Olympiad in Informatics).
Click here to get started with some simple problems that will get you used to the interface.
Each problem asks you to write a computer program. Generally your program must read some data from one or more input files, solve some problem relating to that data and then write the solution to an output file. You are generally given a time limit in seconds that restricts how long your program may take to do this, as well as a memory limit that restricts how much computer memory your program may use.
A number of problems are available for you to try, which you can view from your personal hub. The system contains several general-access problems, such as past Australian Informatics Olympiads. Furthermore, as you submit more solutions and obtain better scores you will find that more restricted-access problems are made available to you.
The problems in the hub are arranged into sets. You may click on a set to view the problems inside it. You may then click on a problem to view the entire problem description, submit a solution or view your previous submissions.
When you have a working solution to a problem, you may submit it using the file upload box at the top of the problem description. Your submission should be a C, C++, Caml, Haskell, Java, Pascal, PHP or Python source file (not a compiled executable).
The system will compile your source file into an executable and then run it using a number of different input files. The input files that the system uses will include easy files as well as input data that is far more demanding than the sample input from the problem statement. Your program will be run against every input file for the particular question at hand – some questions have only four or five input files, others have as many as fifty.
For each input file your submission will be given a score between 0 and 100. If the program exceeds its time or memory limit, it will be scored zero automatically. Otherwise its output will be analysed by the system and it will be scored according to whether this output is correct. Finally you will given an overall score between 0 and 100 for the entire problem, calculated as a weighted average of the scores for the individual input files (note that some input files are weighted more heavily than others).
You may resubmit as many times as you like. In many competitions however you don't have this luxury, so you should always aim to score 100 on the first try. Don't be afraid to test your program before you submit! Testing it yourself with a range of different inputs will help catch any bugs before you submit – the sample input in the question statement is generally far too easy to catch any more subtle bugs that your program might have.
There are several traps that will almost certainly cause a submission to score zero. The most common of these are as follows.
Please mail firstname.lastname@example.org if you have any queries.
Good luck with the problems!