|9 February||Registration deadline for NOI||before 2359|
|19 February||NOI Online Qualification Contest||0900 to 1200|
|19 March||NOI Final Contest||1030 to 1800|
There will NOT be an Online Preliminary Contest for NOI this year.
|Date:||19 February 2022|
|Contest:||3 tasks in 3 hours|
|Languages supported:||C++, Java*, Python 3*||*See Programming Languages
|Contest URL:||[Will be emailed to contestants]|
|0900||Start of NOI Online Qualification Contest|
|1200||End of NOI Online Qualification Contest|
Due to the restrictions enforced by COVID-19, the Qualification Contest will be conducted online.
All schools may register any number of participants. Each student should be registered under one category, Secondary or Junior College.
All participating schools are expected to proctor their own students and ensure that no cheating takes place. Please reference the Rules and Regulations.
Only the top 5 students from each school, at each level, will be considered for medals and awards, and for consideration for the Final Contest. We refer to these students as the ranked group. All students outside of the ranked group will be awarded participation certificates (unless their score for the Qualification Contest is 0).
The top 40 students from the ranked group will be invited to participate in the Final Contest to determine their final ranking. The remainder of the ranked group will be awarded based on their Qualification Contest ranking within the ranked group.
The students invited to the Final Contest will remain in the top 40 places of the overall standing, with their final ranks determined by the Final Contest.
To register for the contest, a school representative should sign up on this website and enrol all participants.
The deadline for doing so is 9 February 2022.
The details listed below might change due to the developing COVID-19 situation. Do check the homepage regularly for updates.
|Date:||19 March 2022|
|Time:||1030 to 1800|
|Contest:||3 to 5 tasks in 5 hours|
|Languages supported:||C++, Java* and Python 3*||*See Programming Languages
(To be confirmed closer to the competition date)
|1030||Reporting time (directly to assigned programming labs)||Programming Labs (COM1)|
|1030||Registration||Programming Labs (COM1)|
|1030||Briefing Session||Programming Labs (COM1)|
|1100||Practice Session||Programming Labs (COM1)|
|1200||Lunch (bento box)||Around Programming Labs (COM1)|
|1300||NOI 2022 Contest Begins||Programming Labs (COM1)|
|1800||NOI 2022 Contest Ends||Programming Labs (COM1)|
To comply with the recommendations from the Ministry of Education regarding COVID-19, NOI will be implementing the following measures:
Prizes would be given out to the top four overall (local) winners of the NOI competition
Additional special prizes will also be given to the Youngest Medallist, Best Female Medallist and the two Top Secondary School Contestants.
On top of those attractive prizes, gold, silver, and bronze medals will also be given out.
The top overall winners will be selected to undergo further training and final selection to represent Singapore at IOI. (Only Singapore citizens and permanent residents are eligible for IOI, but NOI does not impose such restrictions).
Please note that the date of IOI changes each year as it is fixed by the host country for that year. This year, IOI 2022 will be held in Indonesia, from 7 to 14 August 2022.
NOI comprises of one 3-hour contest sessions for the Qualification Contest, and one 5-hour contest session for the Final Contest. During either contest, contestants will be given 3 to 5 tasks to be solved under time constraints. The Qualification Contest will be conducted online, whereas the Final Contest will be conducted at the School of Computing.
There will be a one-hour Practice Session prior to the actual contest, to familiarise all contestants with the grading system and contest environment.
Contestants are expected be in school uniform for the entire duration of the competition. This includes the registration phase, practice sessions, contest, external visits, briefing and closing ceremony.
Any contestant who reports 2 hours after the start of the contest is deemed to be absent and will not be allowed to participate. They will also not receive the Certificate of Participation.
All of the tasks at NOI are programming tasks and are designed to be of an algorithmic nature. The focus is on designing correct and efficient algorithms. Contestants would be expected to design a source code program to solve the provided task during the competition.
The NOI takes direction from the International Olympiad in Informatics (IOI). In particular, the scope of NOI tasks will be in line with the latest updated IOI Syllabus (for IOI 2020).
The source program provided by the contestant must be contained in one source file as specified in the task statement.
As Java Virtual Machine uses multiple threads internally, using multiple threads is allowed in all programming languages. Note, that the running time of the submission will be counted as a sum of running times of all threads. E.g., if there were two threads running for 5 seconds each (thus, the program finishes in 5 seconds), then the running time of the submission will be 10 seconds.
Each task will be divided into several subtasks, each worth a portion of the total points. Each task would have equal weightage in the contest.
Time and memory limits will be specified for every task. In general, time and memory limits will be generous (for example, double those required by the expected solution). The memory limit is on the overall memory usage including executable code size, stack, heap, etc.
However, the Scientific Committee would only guarantee that there exists a solution that fulfils the time and memory limits only in the C++ language. Contestants using either Java or Python are advised to exercise discretion.
Each task can be one of the following types (non-exhaustive):
For Batch tasks, contestants are expected to read and write from standard input and output in the format specified in the task descriptions. At least one sample input and output would be provided in the task description. No template files would be provided.
You may assume that the input data agrees with the format specified in the task description. In particular, NOI will use UNIX-style end-of-line and end-of-file characters.
Your output should be formatted exactly as shown in the task description. Do NOT add output of your own (such as debugging output), as this may disrupt the judging process.
For all other task types, contestants will be provided a folder which will contain interface files, a sample grading program, and a skeleton implementation of the required source file, which exercises the interface but does not correctly solve the problem. The sample grader provided on the workstation would not be the same as the official grader used by the grading system. Contestants are recommended to modify the provided skeleton implementation and follow instructions on how to compile and test the program locally.
Sample input and output might be provided. However, they may not be explanation with regards to their structure in the task description. Contestants are not to assume that the input and output data on the grading system is similar to the ones provided for testing.
Due to technical limitations, the interface files are provided only in the C++ and Java language. Contestants will not be able to solve such tasks using Python.
Each contestant will receive the printed official English version of tasks in an envelope. This should be already at your workstation before the start of the contest.
In addition, each contestant will have online access to the official English version of tasks in electronic format (PDF).
In the competition room, blank paper and writing tools will be provided. However, contestants may decide to bring the following materials:
If a contestant wants to bring any other materials, permission must be sought from the technical staff during the practice session. Any of these will be checked and, if cleared, be allowed to be brought in on the actual competition day.
In addition, no sharing of materials are allowed. For instance, students are not allowed to share the same reference book during the competition.
Any attempt to bring any other item into the competition room will be considered cheating. In particular, during competition rounds it is strictly prohibited to bring:
For the case of snacks, exceptions could be made for students with special dietary requirements.
During the actual competition, light snacks and drinks will be provided outside the programming labs, at a centralized venue. An announcement will be made once these are available. Contestants must consume the snacks and drinks at the provided venues and are not allowed to bring food back to their workstation. In addition, contestants are reminded not to communicate with one another while consuming the snacks and drinks.
All contestants must wear their ID badges and school uniform during the competition. Each contestant will have a pre-assigned workstation. Contestants should be in their seats by at least 5 minutes prior to the start of the competition. Contestants must find their assigned computer, sit down, and wait for the competition to begin without touching anything (such as keyboards, mice, pen or paper), unless otherwise instructed.
During the competition, contestants may submit questions concerning any ambiguities or items needing clarification in the competition tasks. Questions and comments must be submitted online from the contest system. The Scientific Committee will respond to every question submitted by the contestants during the first half of the competition. Since replies might take some time, contestants should continue working while waiting for the answer to their questions.
Contestants should phrase their questions so that a yes/no answer will be meaningful. Questions will be answered with one of the following:
Each competitor has her or his own workstation. There is no restriction on the number of times a program may be edited, compiled, and run on the workstation. The workstations have network access to the grading system, as well as facilities such solution submission.
Grading and evaluation take place on the grading system, which provides a similar execution environment to that of the contestant workstation. Grading workstation will have the same hardware and software configuration as contestant’s workstations (except for programs required for monitoring and grading system).
Contestants must submit their solutions for tasks by using the grading system. To avoid overloading the grading system, there are two restrictions on the number of submissions:
Contestants would be informed of the actual values of these limitations during the briefing session. Typically, contestants would be allowed to submit to each task at most one per minute and at most 30 submissions per task.
Each submitted source program must be written in C++, Java or Python and it must be smaller than 256 KB, the evaluation server must be able to compile it in less than 10 seconds and at most 256 MB of memory.
Contestants can use the grading system to view the status of their submissions and get a short report on the compilation errors of their source code.
Full feedback will be available for every submission, indicating whether each subtask has been solved.
The score for each task will be the sum of the scores for all its subtasks. The score for each subtask will be the maximum score for that subtask across all submissions for the task. (For example, consider a contestant who made two submissions on a task that contains two subtasks. First submitted solution got 30 points for the first subtask and 10 points for the second subtask, second solution got 0 points for the first subtask and 50 points for the second subtask, then the final score for this task will be 80, the sum of the maximum score of each subtask.)
If a subtask is not solved, then the grading system will give the feedback for the first input scenario, which was not solved correctly. The feedback will contain the input scenario number and one of the following reasons:
Inputs are ordered the same way in all the runs. No information on the actual data, the output produced by the contestant solution or any other execution details will be given to the contestant.
It should be noted that the score reported in the full feedback is only provisional. There are two ways how this score may change after it has been reported to the contestant:
Feedback would be provided on a best effort basis. Although the Technical Committee will strive to ensure the timeliness of the feedback provided, unforeseen circumstances might occur. Lack of submission feedback do not constitute grounds for appeal. However, the Scientific Committee and Technical Committee might provide other forms of assistance if such circumstances occur.
NOI does not guarantee to provide printing services. You are encouraged to print any required materials and bring it to the contest before it commences.
Copy of files submitted to the online submission system are saved. You can retrieve old copies of your code from the submission system. This serves as a backup of your code. You are advised to maintain backups regularly, so that you can recover in the unlikely event of a machine failure.
Contestants may ask the support staff for assistance at any time. The staff members will not answer questions about the competition tasks, but will help locate toilets and refreshments, and assist with computer and network problems. The only manner in which contestants are allowed to access the network is via the grading system: even running a single "ping" command is strictly prohibited and may lead to disqualification.
Contestants should never attempt to fix or debug or even check computer or network problems themselves; instead, they should ask for assistance.
Three warnings will be given at 15 minutes, 5 minutes, and 1 minute before the end of the competition. Each warning will be announced verbally by NOI support staffs. The end of the competition will be announced verbally as well. At the announcement ending the competition, contestants must immediately stop working and wait at their desks without touching the computers or anything on their desks. An additional announcement will be made instructing them to leave their tables and exit the competition room.
At the end of the competition, contestants should remove all personal items including their mascots and dictionaries; nothing should be left behind.
Contestants must use only the workstation and account assigned to them for the contest. In particular:
All of the above actions are considered cheating and may result in disqualification.
Submitted solutions are evaluated using data which conform to the specification given in the problem statement, but which are hidden from competitors during the competition.
Provisional grades, based on these tests, are available immediately to competitors. In the event of an error with the test data, the Scientific Committee will attempt to, but is not obligated to follow the following process:
The results of the NOI competition will be announced on within one week of the contest at the competition website. The committee will work out arrangements for distributing medals and prizes of NOI 2022.
The decision of the NOI Committee will be final.
Remember, these rules & regulations are subject to changes.
The below details are not finalized yet. Listed below are the details for NOI 2019, which may be updated for NOI 2022.
The competition computers are Intel PCs with Ubuntu 16.04 LTS, each equipped with a keyboard and a mouse.
The following compilers will be installed on each computer:
The following editors/IDE will be installed on each computer:
The following utility programs will be installed on each computer as well:
The following documentation will be provided locally on the contestant machine:
C++ will be the main language of NOI. The Scientific Committee guarantees that there exists a solution to all tasks in C++ language. Template files (if any) will be provided in C++ language. The time limit and memory limit of tasks will be calibrated to those of C++ solutions.
C++ solutions will be compiled in a 64-bit UNIX environment with g++-7.4.0 or later. "O2" compiler optimisation flag will be switched on. C++17 will be supported.
Java is allowed for NOI. Template files (if any) will also be provided in Java language. However, the Scientific Committee does not guarantee that there exists solutions to all tasks (and subtasks) in Java language. There will be no extra time and memory limit for Java applications.
Java solutions will be executed in a 64-bit UNIX with JDK. Java 8 (or better) will be supported. As Java applications might use more than one thread, the time limit is applied to sum of runtime across all the threads of the Java application.
Java users are advised to be familiar with techniques to process input quickly in order to stay within the time limit.
Python 3 is allowed for NOI. Similar to Java, the Scientific Committee does not guarantee that there exist solutions to all tasks (and subtasks) in Python language. In addition, template files will not be provided in Python language and hence Python users will only be able to attempt tasks that are of the "Batch" type. There will be no extra time and memory limit for Python applications.
CPython would be used as the interpreter, not PyPy or other variants. Submissions would be judged in a 64-bit UNIX environment using Python 3.6.9.
Chairman: A/Prof Tan Sun Teck
Vice Chairman: Dr Steven Halim
Secretary: Dr Daren Ler
Scientific Chair: Prof Sung Wing Kin, Ken
Technical Chair: Mr. Lai Zit Seng
Admin: Mrs Ho Siew Foong, Ms Teo Pei Pei
Technical Admin: Mr Leong Wai Kin
Webmaster: Dr Daren Ler
The NOI operations team is tasked with handling the overall co-ordination between different committees. They are also tasked to communicate with various participants and their team representatives for the registration process. The following are the members of the NOI 2020 Operations Team:
The NOI Scientific Committee is tasked with the setting, preparation, and selection of problems for all contests of the NOI. The following are current members of the NOI Scientific Committee:
The NOI Technical Committee is tasked with the preparation and maintenance of contest infrastructure and configuring of contest problems for the NOI. The following are current members of the NOI Technical Committee: