the 15th NOI
National Olympiad in Informatics
3 March 2012, School of Computing, National University of Singapore
15th NOI
Rules & Regulations
Coding Environment
Instructions (PDF)
About NOI
About NOI
About IOI

Rules and Regulations

Note that the venues and competition details mentioned below are subjected to change. Please check back this page for updates.

The NOI Competition

The 15th NOI competition will be held on Saturday, 3 March 2012.

Contestants are to report in school uniform at 12:45pm outside Seminar Room 1, at Block COM1, Level 2, School of Computing. You will mark your attendance, and collect your name tag, free bag and T-shirt there. Wear your name tag on your right chest. At 1:15pm, a briefing to all contestants will be conducted. You will then proceed to the competition rooms on the basement of Block COM1, School of Computing.

At 2:00pm, five programming tasks will be given out to the contestants, who will individually code the solutions and produce the executable files within four and a half hours. Light snacks and drinks will be provided during the session.

Any contestant who reports after 2pm is deemed to be absent and will not be allowed to participate, and will not receive the Certificate of Participation.

Contestants do not need to be present for judging.

The results of the 15th NOI will be announced on 10 March 2012 during a prize-giving ceremony. All contestants are invited to attend the prize-giving ceremony. Tentatively, the programme on that day starts at about 10am and ends at 1pm. You will be given the details on the day of the competition.

The decision of the NOI Committee will be final.

Go to top of page Competition Equipment

The competition computers are Intel PCs with Fedora 8 (Gnome desktop environment), each equipped with a keyboard and a mouse.

Writing pad and pens will be provided. As this is an open-book competition, you may bring in books and notes. You are NOT allowed to bring in computers, diskettes or other computing and electronic devices (except calculators and watches). You are to turn off your mp3 player, handphone, etc. and keep them inside your bag.

Go to top of page Programming Languages

The following compilers will be installed on each computer:
  • fpc 2.2.0
  • gcc 4.1.2
  • g++ 4.1.2

The following editors/IDE will be installed on each computer:

  • Geany
  • Kate
  • KWrite
  • KDevelop
  • vim and gvim
  • GNU Emacs, XEmacs
  • Lazarus

Firefox will be available as the browser. DDD and GDB are installed as debugger.

Go to top of page Directories and Execution Path

The competition is held in the PC Labs on the basement of block COM1 (School of Computing). You will find the following directories (note: the information here is subject to change) on the home directory of your computer:

  • docs contains actual documentation files
  • tasks contains test data

Go to top of page Competition Tasks

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.

The Task Overview Page lists out for each task, the execution time limit that applies to every test run, the number of test data sets, and the maximum points awarded for the task.

Go to top of page Your Programs

While you may choose to write your programs in any of the programming languages offered, to enable objective judging you must compile your programs as stand-alone executables.

For C and C++ programmers, your main function should not require any arguments.

The input and output operations will be kept simple, allowing you to concentrate on the algorithmic details. No special features of the programming packages are needed, nor should they be used. In particular, the following features will NOT play a role in the programming tasks: Graphical output, mouse input, advanced file manipulation, advanced numeric processing and system calls.

You should be familiar with the programming package of your choice. Your ability to use the Integrated Development Environment (IDE), in particular, the built-in editor, compiler and the debugger, will be helpful. Some knowledge of compiler options may also be an advantage. Furthermore, you should be able to use Linux for such tasks as executing a program, changing the working directory and managing files.

Go to top of page External Communications

The only external communications allowed by your programs are reading from standard input, writing to standard output, and (if any) calling external functions in libraries that are specified in the task descriptions.

Go to top of page Input Data

Programs should read their input data from standard input as ASCII text. This is the case even if the program needs only a single value.

You may assume that the input data agrees with the task description, and the data sets used in the judging do not contain errors.

Input data consist of a sequence of items. An item is either an integer or a non-empty character string of letters ('a' to 'z', 'A' to 'Z'), digits ('0' to '9') and/or other characters ('@', '$', '*', etc.). Items are separated by either a single space character or a single end-of-line.

In general the structure of the input is such that you do not have to worry about end-of-line and end-of-file conditions. There may, however, be exceptions to this. In any case, the task description will indicate so if an exception exists.

One sample input file is provided for each competition task, both in the task description and the task directory. However, successful execution of your program on the sample file does not necessarily guarantee that your program is correct.

Go to top of page Output Data

Programs should write their output data to the standard output as ASCII text exactly as specified in the task description.

Output data consist of a sequence of items. An item is either an integer or a non-empty character string of letters ('a' to 'z', 'A' to 'Z'), digits ('0' to '9') and/or other characters ('@', '$', '*', etc.). Items are separated by either a single space character or a single end-of-line.

The 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.

Go to top of page Intermediate Files

No files are to be read by your programs. Also, your programs must not create any files during execution.

Go to top of page Starting the Competition

When you enter the competition room, your allocated computer will already have been switched on. The competition task descriptions will be distributed to you at the start of the competition.

You must not communicate with your friends during the competition, either in the competition room, or outside. Do not touch the keyboard until the start signal is given.

Go to top of page Questions and Assistance

During the two hour of the competition you may submit questions through the online submission system concerning any possible obscurities or ambiguities in the competition task descriptions. Each question will be answered with only one of the following responses: Yes, No, No Comment, Answered in the Task Description, or Invalid Question.

Your question(s) may take some time to be answered, so you should continue working while waiting for the answer(s) to your question(s).

You may ask the lab supervisors for assistance at any time. The supervisors will NOT answer questions about the competition tasks, but will help you find toilets, refreshments, and attend to computer problems.

Go to top of page Printing

During the competition you may get printouts of ASCII files. You may print your code through the online submission system.

Go to top of page Backups

Copy of files submitted to the online submission system are saved. You can retrieve old copies of your code. 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.

Go to top of page Ending the Competition

You will be warned at 15 minutes and again at 5 minutes before the end of the competition. Take this opportunity to go through the following check list for the tasks:

  • Have your submitted your program to the submission system?
  • Have you disabled the debug features in your programs?
  • Have you removed unneccessary screen output?
  • Do your programs produce output in the expected format?

When the TIME'S UP signal is given, you must immediately stop working.

Do NOT switch off your computer.

Rules are subject to changes.

Last updated: Tuesday, February 22, 2011 05:58:53 PM SGT