Competition Format & Judging

There will be 6 problems in both the Intermediate and Senior divisions, to be completed in 3 hours. Each problem has a statement which describes a problem you must write a program to solve. Students submit the source code for their program (called a submission) which is then compiled (if applicable) and run against a series of different input scenarios to test correctness and efficiency.

Students may make multiple submissions to a problem, of which the best submissions are used to calculate the total number of points the student will get for that question. Each problem contains a number of subtasks, worth a total of 100 points. All problems and subtasks may be attempted in any order. See the Scoring section for more details.

Program specifications

For each problem, students are required to write a program that solves the problem described. Each problem specifies:

Input/output format

The problem statement will describe the format of the input file your program must read from, and the desired output format of the output file your program should write the answer to. If you do not follow the expected format, you will likely score zero for that submission.

The contest system provides some leniency in the output format: it will ignore preceding and trailing whitespace (spaces & tabs) on each line.

Do not read from/write to any files other than the input and output files specified in the problem. In particular, any output to the screen will be ignored, and no input from the keyboard will be supplied.

Code templates will be provided for each problem that handle reading input and writing output. Using these templates is strongly recommended.

Supported languages

Students can submit in C, C++, Python 3 or Java. Please see the Technical Specifications page for specific version details.


When submitting solutions, students should submit a single file (e.g. file.cpp, containing the source code that will solve the problem. In particular, students should not submit the compiled executable (such as file.exe). Compiled executables will result in a ‘Compilation failed’ verdict, and will receive a score of zero.

You cannot make any submissions once the three hours are over! Students should not leave all their submissions until the last few minutes, otherwise they risk running out of time. You should submit each solution once it is written. (You may always resubmit a better solution later.)


Scoring example

For example, imagine a problem that asks you to find the median value in an array of N integers. Then the problem might include a description of subtasks that looks like this:

For all test cases:


As you can see, the easier subtasks put more restrictions on the input, letting you make simplifying assumptions about the problem.

We take your best score for each subtask among all your submissions. Thus, if you submitted both programs above, you would earn 25 + 15 + 20 = 60 marks for the problem (even though neither solution you submitted scores 60 marks on its own).