Rules and Regulations
- Competition Equipment
- Programming Languages
- Directories and Execution Paths
- Competition Tasks
- Your Programs
- Starting the Competition
- Questions and Assistance
- Printing
- Backups
- Ending the Competition
The NOI Competition
The NOI competition will be held on Saturday, 5 April 2008.
Contestants are to report in school uniform at 12:45pm outside LT 34, third level of block SOC1 at 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 in LT 34. You will then proceed to the competition rooms on the eighth floor, SOC1.
At 2:00pm, six programming tasks will be given out to the contestants, who will individually code the solutions and produce the executable files within four 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 NOI 2008 will be announced on 12 April 2008 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 NOI (5 April 2008).
The decision of the NOI Committee will be final.
Competition Equipment
The competition computers are Pentium PCs with WinXP, each equipped with a mouse.
Diskettes for back-ups and printing, writing papers 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.
Programming Languages
The following compilers, come with help files, will be installed
on each computer:
- Free Pascal Version 1.0.10 (Download site: http://www.freepascal.org/)
- DJGPP C/C++ Version 2.0 (Download site: http://www.delorie.com/djgpp/)
- Dev-C++ Version 4.9.9.1 (Download site: http://www.bloodshed.net/devcpp.html)
Directories and Execution Path
The competition is held in the PC Labs and Workstation Lab
on level 8 of block SOC1 (School of Computing).
You will find the following directories (note: the information
here is subject to change)
on the hard-disk of your computer:
- C:\PP\BIN\WIN32\FP.EXE for Free Pascal
- C:\DJGPP\BIN\RHIDE.EXE for RHIDE DJGPP C/C++
- C:\DEV-CPP\DEVCPP.EXE for Dev-C++
- E:\NOI\TASKS for your working directory (where you develop your programs)
- E:\NOI\SUBMISSIONS for submitting your .EXE files. (You must copy your .EXE files to this directory before the competition ends.)
The execution path %PATH% will be set to give access to all programming languages.
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 task name, input filename, output filename, the execution time limit that applies to every test run, the number of test data sets, and the maximum points awarded for the task.
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 MS-DOS 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 DOS 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 MS-DOS for such tasks as executing a program, changing the working directory and managing files.
External Communications
The only external communications allowed by your programs are reading input files and writing output files.
Input Data
Programs should read their input data from ASCII text files. This is the case even if the program needs only a single value. The names of the input and output files are given in the task descriptions. The names of the input and output files must be spelt precisely as given; no variation will be allowed. Programs must NOT read from the keyboard.
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.
Output Data
Programs should write their output data to the ASCII text file specified in the task description. Programs are NOT required to write to the screen, and such output will NOT be evaluated. You are encouraged to remove all screen output from your programs before you create the final executable.
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, as this may disrupt the judging process.
No Hardcoding of Paths
Do NOT hardcode the pathname of your input file or output
file. For example, if the input file is 'APPLE.IN', this
is what you should write in your program:
assign(infile, 'APPLE.IN');
OR
infile = fopen("APPLE.IN", "r");
![]()
and NOT this:
assign(infile, 'E:\NOI\TASKS\APPLE.IN');
OR
infile = fopen("E:\NOI\TASKS\APPLE.IN", "r");
![]()
or any other directory. Do likewise for the output file.
Intermediate Files
No other files, besides the given input files, are to be read by your programs. Also, your programs must not create other intermediate files besides the required output files.
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.
Questions and Assistance
During the first hour of the competition (9:00am to 10:00am)
you may submit written questions on the "Question Form"
provided 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, or No Comment.
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 deliver your question forms, help you find toilets, refreshments and attend to computer problems.
Printing
During the competition you may get printouts of ASCII files. Copy the file(s) into the subdirectory "A:\PRINT" of your diskette and hand it to the supervisor. Your diskette will be returned with the printout of the file(s). The file(s) will be moved to the directory "A:\TRASH", after printing.
Backups
You will be given a diskette for you to backup your files and for printing during the competition. You may take this diskette back home after the competition. You are advised to maintain backups regularly, so that you can recover in the unlikely event of a machine failure.
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 you saved your programs with the correct names?
- Have your copied the executable files of your tasks into the submission directory?
- Have you disabled the debug features in your programs?
- Have you removed screen output?
- Did you make executables using the right compiler options?
- Do your programs produce output in acceptable formats?
- Do your programs accept inputs through the keyboards (like "press a key to continue") -- this is NOT allowed!
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: 12 February 2008
