Hong Kong Olympiad in Informatics

IOI / NOI Team Formation Test

Last modified: Thu Dec 27 4:18:18 HKT 2007

This page may be updated any time before and after the TFT. Please check this page regularly for the most up-to-date information.

Note to past contestants: The contest environment, the method of submission and other procedures in this year's Team Formation Test has changed substantially. Please read carefully to make sure you understand the new rules.

Schedule

The details of Team Formation Test 2007 are as follows:
Date: 9th June, 2007
Time: 10:00* to 14:00 (4 hours)
Venue: Room 924, Ho Sin-hang Engineering Building, The Chinese University of Hong Kong

* Please arrive an hour early to test the machines and the programming environment.

If you cannot attend the TFT due to academic reasons, please contact us immediately to see if we can make any special arrangements.

Eligibility

HKOI Team Formation Test for NOI/IOI 2007: All current HKOI trainees are eligible to participate

IOI 2007: less than 20 years old at the 1st of July 2007, full-time secondary school student in the year 2006-2007. Please refer to the IOI Competition Rules for details (see http://www.hsin.hr/ioi2007/)

NOI 2007: Below 19 yrs on 30th June 2007. See the NOI regulations

Environment

Hardware

  • Intel 3.2 GHz CPU
  • 1 GB RAM (Note: the memory limit for your programs is likely to be much less than this)
  • Standard hardware peripherals (i.e. Keyboard, Mouse, Monitor)

Installed Software

Operating System: Ubuntu GNU/Linux (Microsoft Windows/Other OS'es will not be provided)

  • Linux Kernel 2.6.17
  • GNOME Desktop Environment 2.16.1
  • GCC 4.1.2
  • G++ 4.1.2
  • GDB 6.4
  • FreePascal 2.0 with IDE and documentation
  • GEdit 2.16.1
  • Vim/GVim 7.0
  • Emacs 21.4a
  • Nano 1.3.12
  • Firefox Web Browser 2.0 (for accessing the documentation)
  • STL documentation
  • GNU "bc" Calculator

Tasks

Contestants will be given four tasks to complete within four hours.

Solutions consisting of a program source file

When a program source file is required as a solution, the source code provided by the contestant must be a single source file. Executable files are not acceptable. Input and output should be done via standard input and standard output. For each task, the task description (available in English only) will specify:

  • The input and output data formats
  • The input value ranges (when applicable)
  • The resource limitations for the computations (e.g., CPU time, memory limitations)
  • Any other constraints on the program

The output should be formatted strictly according to the specified output formats. Every line of the output should end with an end-of-line character.

Competition Procedures

Test Session

Contestants are allowed to enter the competition room at 9:00 to test the machines. All data created by the user during this period should be deleted before the competition starts.

Competition

Contest Server

The Team Formation takes place in a distributed environment in which each contestant has his or her own workstation for development and initial testing. Grading and evaluation take place on the Contest Server, which provides a similar execution environment to that of the contestant workstation.

Each contestant's workstation contains a Linux system, and a common set of compiler and development tools will be available (see above for a detailed list). These tools are used to develop solutions to the problems posed. There is no restriction on the number of times a program may be edited, compiled, and run on the workstation.

The workstations will have network access to the Competition Server, which will be used for solution submission and will provide backup facilities.

Raising Questions

During the competition, contestants may ask for clarifications on the tasks, competition environment or procedures from the judges. However, questions that relating to solutions or hints to solutions of competition tasks will not be entertained. An announcement to all contestants may be made if the judges deem necessary.

Contestants experiencing technical difficulties should inform the invigilators immediately. Although extra time may be given according to the seriousness of the problem, any unsaved work will be lost.

No blank papers and writing utensils will be provided. Contestants should bring their own writing utensils.

Prohibited Acts

Aside from network access to the Contest Server, the workstations will not have access to each other and the Internet. Any attempt to access another contestant's computer or the Internet will be considered cheating.

Any attempts by the contestant to do any act not within the provided user priviledge (eg. trying to become root/administrator/any other user) is considered cheating.

Submitted programs must not read or create any file. Submitted programs must not attempt to access any system resources other than those relating to solving the given task. In particular, fork(), open(), close(), socket() system calls are not allowed. Any contestants who intentionally submits a program violating these rules will be consiered cheating.

Any attempts to use the Contest Server / Online Contest System maliciously (i.e. hacking) will be considered cheating.

Any attempts to disrupt the competition, including attempts to bring down the Contest Server or the Online Contest System, will be considered cheating.

Any use of electronic storage devices, calculators, will be considered cheating. In addition, contestants are not allowed to refer to any notes, textbooks or other written or printed materials other than those supplied during the Competition.

Any other action or inaction by a contestant to intentionally gain an unfair advantage for himself or for any contestant over any other contestant(s) will be considered cheating.

All forms of cheating, regardless of whether it falls under the above categories, and including those not described above, are prohibited. Contestants who cheat or attempt to cheat will be disqualified.

Submission of Solutions

All judging and grading of submissions will be performed on the Contest Server. Therefore, contestants must submit their program source code to the contest server to be judged and graded.

Contestants may submit solutions for a task multiple times during the contest. However, only the last submission will be considered during the judging process. All previous submissions will be ignored.

The contest system will cease to operate once the contest is over. Contestants will not be able to submit any solutions after the contest is over, and no extra time will be allocated for the final submission of solutions. Since there may be a large number of submissions in the last few minutes of the contest, which could result in a slowdown of the server, contestants are advised to submit their solutions frequently, and allow at least a few minutes for the final submission to avoid a last minute rush.

When you submit your solution, the contest system may compile your solution and verify that your solution passes the sample test case. The intention is to make sure your solution can be successfully compiled and can pass a trivial test case (which performs a function similar to that of a format checker). A successful submission is in no way an indication that your solution is correct on any actual test cases.

Grading

For each task there is a set of test cases. The source files for the task will be compiled under Linux on a machine identical (or near identical) to those used by contestants in the competition. No mark will be given to the task if there was no successful submission to the Contest Server.

The command for compiling a Pascal program for judging is:
fpc program.pas -So -XS -v0 -O2

The command for compiling a C program for judging is:
gcc program.c -lm -w -O2 -static -static-libgcc

The command for compiling a C++ program for judging is:
g++ program.cpp -lm -w -O2 -static -static-libgcc

Marks are awarded for each accepted test case. A test case is accepted if:

  • the program produces the correct output (for tasks requiring programs as solutions); and
  • the program (if any) terminates within the CPU run-time limit; and
  • the program (if any) does not exceed the memory limit; and
  • the program (if any) returns an exit code of 0 upon termination (C users must use return 0; to exit the program)

Depending on tasks, partial score may be awarded. Tasks awarding partial scores will contain further details describing the circumstances in which partial scores are awarded.

Release of Scores and the Appeal Process

Individual scores will be released to contestants in the afternoon of the competition date. These scores are not yet final and are subject to appeal and correction. Individual scores are released together with test data of all the tasks and the source code submitted by the contestant. Contestants are allowed to return to their contest workstation to check and verify their scores and check the correctness of the test data.

The appeal period will begin immediately after the scores are distributed.

Grounds of Appeal

If any contestant is not satisfied with his score, he can raise an appeal during the appeal period to the judging panel on the following grounds:

  • Some input test data does not conform with the task description
  • Some output test data is wrong, meaning that if the corresponding input test data was processed in accordance to the task description, that output is different from the given output test data.
  • There was some irregularity in the judging process, meaning that during the judging process, either:
    • Some contestant's submitted program source code was compiled in a different manner otherwise than that specified by the competition rules; or
    • Some contestant's program was not given the correct input test data in accordance with the competition rules; or
    • Some contestant's program was not run in an environment in accordance with the task description or the competition rules; or
    • Some contestant's program was not run under constraints provided in accordance with the task description or the competition rules; or
    • Score was not given to some contestant regarding some sets of test data, even though the contestant's submissisions performed the task(s) as specified in the task description in accordance with the competition rules
    • Score was given to some contestant regarding some sets of test data, not withstanding that his submission was in violation of the competition rules, or that his program or solution did not conform to the task description.

Appeals on other grounds will not be entertained at this stage, except by the discretion by the Head of the Competition Comittee. In particular, complaints regarding the contest environment (eg. faulty keyboard, too much noise by other contestants, hardware failure during contest, etc) which were not raised during the contest will not be entertained.

Processing an Appeal

The judging panel may do any of the following pursuant to an appeal:

  • Dismiss the application of the contestant
  • Adjust the score of the applicant
  • Adjust the score of any other contestant(s)
  • Modify the test data of any one or more task(s), subject to the restrictions below, and rejudge all contestant's submissions for that task(s)
  • Modify the judging system or judging environment, and rejudge all contestant's submissions

The test data may only be changed in the following conditions:

  • If there is a single obvious way to correct the test data (for example, wrong test data output generated by a incorrect program), correct the test data in that obvious way.
  • If otherwise, remove the problematic test case from the set of test data for the task. In this case, the judging panel has a discretion on whether to reduce the total score for the task, or to adjust the score of the other test cases for the task such that the total score of the task remains the same.
  • If too many test cases are removed in this way which would adversely affect the fairness of the contest, a new set of test cases may be produced.

Any change to contestants' scores will be announced to the contestant(s) who is/are affected. Any changes to the test data will be notified to all contestants. Notwithstanding the above, only contestants who are present in the contest venue at the time of the change will be so notified.

End of the Appeal Period

The appeal period will end at 5pm on the contest date. The Head of the Competition Committee may by discretion extend the appeal period if he deems neccessary to process the appeals. No appeals will be entertained after the appeal period.

Results and Selection of Delegations

Finalized results will be announced a few days after the competition. Four contestants will be selected as IOI2007 Hong Kong Team members and five contestants will be selected as NOI2007 Hong Kong Team members.

Delegation Selection Algorithm

IOI Team members:

  • The top four contestants who are eligible for IOI2007 (name them A, B, C and D)
NOI Team members (only those who are eligible for NOI2007 are considered):
  • The top contestant (E)
  • The top three contestants (F, G, H) ignoring A, B, C, D and E
  • If any one (or more) of E, F, G, H is a female, select the top contestant (I) ignoring A to H;
    otherwise, select the top female contestant (I) ignoring A to H

Example

From highest rank to lowest rank:
Tse, Lam, Liu, Tsang, Fong, Yu, Chung, Lui, Pang, Wong, Kwok (F), Chan, Cheng (F)

Moreover, Lam and Yu are not eligible for NOI2007; Tse is not eligible for both competitions.

Then, IOI2007 Team members are Lam, Liu, Tsang and Fong; NOI2007 Team members are Liu, Chung, Lui, Pang and Kwok.