Before the Contest

How can I prepare for this contest?

Navigate to the Prepare page for tips on how to prepare for NOI.PH. Kevin also wrote a post answering common questions asked by first-timers to programming contests.

How can I register for the contest?

Go to the Register page and register.

How is the competition run?

Participants will be given three to twelve problems to solve in a span of five hours.  Solutions must be done by programming in either C, C++, Java, or Python (new!).

What sort of problems can I expect in the contest?

Problems are mathematical or algorithmic in nature, and will require an understanding of mathematics and computer science.  Difficulty will range from easy to complex.

Problems are composed of a problem statement, an input specification, an output specification, a set of constraints on the parameters of the problem, and sample input and output.

The full syllabus of concepts that are potentially covered by the problems are listed in the Official IOI Syllabus.  You can try to solve sample problems at the NOI.PH practice page.

What is expected from the solutions?

Solutions for each problem are expected to receive input from standard input (stdin), and to provide output on standard output (stdout). Solutions are expected to exactly match the output of the judge’s solutions for the problem when given the same input, and are expected to run in the allotted time and memory limit stated on the problem.

How can I learn more?

Please feel free to email us any questions or concerns at [email protected].

During the Contest

What happens after I submit my code?

Your code will be compiled into a program. Your program will be checked against all test files (two for each subtask – one preliminary and one additional). You will be shown your total scores for the preliminary test files.

How is the score calculated during and after the contest?

The scores in the scoreboard show the scores you earned from the preliminary test files. These do not represent your final score for the problem.

After the contest, the scores earned from the additional test files will be added. This will be your final score for that problem. If you submitted multiple codes for each problem, we will take your highest total score.

What does it mean for my code to pass a test file?

Your code is said to pass a test file if and only if the program it compiles into returns the correct (expected) output for that test file.

What are preliminary and additional test files and what is the difference between the two?

Each subtask has a preliminary and an additional test file. Preliminary test files are there to give you an idea of which subtasks your program passed. Additional test files will contain a different set of input from the preliminary test files and it will not be revealed whether or not your program passed these until after the contest.

Why am I not getting full points for the problem?

During the contest, the maximum points you can earn for each problem will be 50. An additional 50 points will be awarded after the contest depending on whether or not your program passes the additional test files. If you do not get the full 50 points during the contest, then this means that there may be problems in your code which may be due to (but not limited to) the following reasons:

  • Your program prints the incorrect output for some test files.
  • Your program does not finish within the allotted time limit (2 seconds for C/C++, 4 seconds for Java, 10 seconds for Python). In other words, the algorithm you are using is too slow for the set of input contained in the test file.
  • Your program returns an error for some test files.

Submissions which pass some test files will still contribute to your final score.