|1 February||Registration deadline for Online Preliminary Contest||before 2359|
|9 February||NOI Online Preliminary Contest||0900 - 1200|
|1 March||Registration deadline for NOI||before 2359|
|22 March||Registration and Practice Session||1700 - 1930|
|23 March||Contest and Award Ceremony||0730 - 2000|
Note that the venues and competition details mentioned below are subjected to changes. Please check back this page for updates. There will be a briefing before the actual NOI for any last minute changes, if any.
|Date:||9 February 2019|
|Contest:||3 tasks in 3 hours|
|Languages supported:||C++, Java*, Python 2*||*See Programming Languages|
|Contest URL:||[Emailed to contestants]|
|0900||Start of NOI Online Preliminary Contest|
|1200||End of NOI Online Preliminary Contest|
The NOI Online Preliminary Contest is an optional contest for schools that have expressed interest in it. Participants can participate in this online contest either from school or from home. Unlike the actual NOI, there are no restrictions on the number of participants from each school. In addition, students are welcome to refer to any materials online or offline. However, they are not allowed to communicate the solutions with one another or discuss the solutions online before the end of the contest.
Each participant of the NOI Online Preliminary Contest will receive a Certificate of Participation if and only if they score a positive score in the online contest. The NOI Committee will not be awarding any medals or other prizes for this contest. The decision of the NOI Committee is final.
It is strongly recommended for every participating school to register for the preliminary contest as a form of practice.
To register a school for the preliminary contest, a school representative should sign up on this website and enroll all participants.
The deadline for doing so is 1 February 2019.
|Date:||22 March 2019|
|Time:||1730 to 2030|
|Practice Session:||3 tasks in 1 hour|
|Languages supported:||C++, Java*, Python 2*||*See Programming Languages|
|1730||Registration and Dinner Reception||Seminar Room 1, COM1|
|1830||Briefing||Seminar Room 1, COM1|
|1930||Start of Practice Session||Programming Labs (COM1, I3)|
|2030||End of Practice Session||Programming Labs (COM1, I3)|
The Practice Session will be conducted on the actual hardware and environment of the actual NOI competition. Students should utilise this opportunity to familiarise themselves with the contest environment and the contest systems before the actual competition.
|Date:||23 March 2019|
|Time:||0730 to 2000|
|Contest:||3 to 5 tasks in 5 hours|
|Languages supported:||C++, Java* and Python 2*||*See Programming Languages|
|0730||Reporting time||Outside Programming Labs (COM1, I3)|
|0730||Breakfast (Bento Box)||Outside Programming Labs (COM1, I3)|
|0830||Start of NOI Contest||Programming Labs (COM1, I3)|
|1330||End of NOI Contest||Programming Labs (COM1, I3)|
|1345||Lunch||Foyer outside Seminar Room 1, COM1|
|1430||Capture the Flag Competition (organised by NUS Greyhats)||Programming Labs (COM1 only)|
|1630||End of Capture the Flag Competition||Respective Programming Labs (COM1 only)|
|1700||Solution Presentation by NOI Scientific Committee||Seminar Room 1, COM1|
|1730||Presentation by NOI Donors||Seminar Room 1, COM1|
|1830||Award Ceremony||Seminar Room 1, COM1|
|1930||Buffet Dinner||Foyer outside Seminar Room 1, COM1|
Prizes would be given out to the top four overall (local) winners of the NOI competition as well as the top foreign contestant.
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 to both local and invited foreign participants.
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 2019 is held in Azerbaijan, Baku, from 4 to 11 August 2019.
NOI comprises of one consecutive 5-hour contest session. During the contest, contestants will be given 3 to 5 tasks to be solved under time constraints.
There will be a one-hour Practice Session prior to the actual contest, to familiarize 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. He 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 2019).
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 fufils 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-exhausive):
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 competition. Since this 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 final score for each submission will be the sum of scores for all its subtasks. The score for each task will be maximum score 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 50, the maximum of both submissions.)
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 the same day during the closing and award ceremony. All contestants are required to attend the closing and award ceremony.
Participants who do not attend the prize giving ceremony WILL NOT be able to collect their certificates or prizes.
The decision of the NOI Committee will be final.
Remember, these rules & regulations are subject to changes.
The below details are not finalized and might vary without notice.
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 enviroment with g++-4.8 or later. "O2" compiler optimisation flag will be switched on. Either C++11 or C++14 will be supported, but not both.
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 compiled in a 64-bit UNIX with "gcj". Java 1.4 (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 2 is allowed for NOI. Python 3 is not supported at the moment, due to technical constraints. Similar to Java, the Scientific Committee does not guarantee that there exists 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 2.7.
The main differences of Python 2 and 3 can be found here.
Chairman: A/Prof Tan Sun Teck
Vice Chairman: Dr Steven Halim
Secretary: Dr Colin Tan
Scientific Chair: Prof Sung Wing Kin, Ken
Technical Chair: A/Prof Richard Ma
CTF Chair: Dr. Sufatrio
Admin: Mrs Ho Siew Foong, Ms Teo Pei Pei
Technical Admin: Mr. Leong Wai Kin
Webmaster: Ranald Lam, Lin Si Jie
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 2019 Operations Team:
The NOI Scientific Committee is tasked with the setting, prepration 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:
The CTF Committee is tasked with the preparation and organisation of the Capture the Flag (CTF) competition conducted during the NOI Competition.