Updated May 6, 2016 12:00:00 (changes are in Pink)
Updated April 27, 2016 21:50:00 (changes are in Red)
Updated April 26, 2016 20:00:00 (changes are in Magenta)


Date: 7th May, 2016
Time: 14:00 to 19:00 (5 hours)
Venue: Room 924, Ho Sin-Hang Engineering Building, The Chinese University of Hong Kong

* Please arrive at 13:30 to test the machines and the programming environment.
* Contestants who are late for more than 15 minutes will be disqualified.
* Early leave is not allowed.
* Refreshments will be provided during the test.


You are eligible for the Team Formation Test if and only if you are:

  • – An individual medal winner in HKOI 2015/16, and
  • – A full-time secondary school student in the year 2015-2016

Additional criteria for IOI 2016:

  • – Born on or after July 1, 1996, and
  • – A holder of Hong Kong Permanent Identity Card

Additional criteria for NOI 2016:

  • – Born on or after July 1, 1997, and
  • – A holder of Hong Kong Permanent Identity Card

Ineligible HKOI Online Judge account holders may participate as observers.

IOI / NOI / ACM Hong Kong

International Olympiad in Informatics

Kazan, Russia
August 12 – 19, 2016 (Fri – Fri)

National Olympiad in Informatics

Mianyang, Sichuan
July 22 – 28, 2016 (Fri – Thu)

ACM Hong Kong Collegiate Programming Contest

June 18, 2016 (Sat) Whole day


Eligible students and observers may register through the judge’s Contests page on or before May 5 (Thu). Walk-in is allowed.

Programming Languages

The programming languages allowed are C (C99), C++ (C++11) and Free Pascal.


  • Intel 4th Generation Core i5 Processor or above
  • 4 GB RAM or above (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 14.04.4 LTS Desktop

The Linux environment includes:

  • GCC 4.8.4
  • G++ 4.8.4
  • GDB 7.7.1
  • Lazaurus IDE 1.4.4 FreePascal 2.6.4
  • Code::Blocks IDE 16.01
  • Firefox Web Browser (for accessing the judge and documentation)
  • Free Pascal and C++ STL documentation

However, submitted programs will be compiled using the compilers and compilation flags specified in the Help page of the Online Judge. The organiser will provide all the necessary hardware and software for the competition. Participants are not allowed to use any of their own resources in the competition.


The paper shall consist of several programming tasks. Each task may carry different points. Each task will be further divided into one or more subtasks. Each subtask may carry different points.

Submission of Solutions and Adjudication

Contestants should submit their solution source codes to the Online Judge. The judge will compile the source codes submitted by contestants, and then assess the compiled programs by testing them with a set of data unknown to the contestants and a marking scheme to be determined by the Adjudicators. To score points for a subtask, contestants’ programs must be correct for all test cases in that subtask.

Contestants will receive feedback about their submissions, including errors (if any), the number of cases and subtasks passed and the points scored. The highest-scored submission of each task shall be final. Contestants may submit at most once per task per minute, and at most 100 times per task.


During the competition, contestants are allowed to seek clarification on the wordings of the tasks from the Adjudicators by raising their hand. Should the condition deem necessary, the clarifications will be announced to all contestants. Clarification related to the solutions will not be entertained.

Any queries about the competition should reach the Chief Adjudicator immediately after the competition. The decision of the Adjudicators will be final.


Full feedback will be available. The test cases for each subtask may be presented in a randomised order.

There is a small chance that the score may change due to change of tests, or indeterminacy of the contestant’s submission. Indeterminacy may arise intentionally due to the use of pseudo-random number generators, or unintentionally due to programming bugs or marginal running time. The Hong Kong Olympiad in Informatics Organizing Committee reserves the right to re-evaluate submissions, and the final score will be that yielded by the final evaluation.

Scores and Tie Breaking

The final score for any task will be obtained by adding the scores of each of the subtasks for that task. The total score of a contestant is the sum of his/her scores for all tasks.

In case of ties, the one with fewer number of submissions shall rank higher. If still tied, compare their last submissions that resulted in increase of total score. The one with the earlier submission time shall rank higher.

Delegation Selection Algorithm

If there are no outstanding issues, the ranking will be finalized and announced immediately after the test. X contestants will be selected as IOI Team members, Y as NOI Team members, Z as ACM Hong Kong observing team members. The current values are X=4, Y=5 and Z=15.

Step 1: Starting from the top, choose X students who are eligible for, and commit to attend IOI, as the IOI team members.

Step 2: Starting from the top, choose 1 student who is eligible for, and commits to attend NOI, as an NOI team member.

Step 3a: Remove students selected in Step 1 and/or 2 from the ranking.

Step 3b: Starting from the top, choose Y-2 students who are eligible for, and commit to attend NOI, as the NOI team members. Remove these students from the ranking.

Step 4a: (If the currently selected NOI team members contain a female student) Starting from the top, choose 1 student who is eligible for, and commits to attend NOI. Remove this student from the ranking.

Step 4b: (If the currently selected NOI team members do not contain a female student) Starting from the top, choose 1 female student who is eligible for, and commits to attend NOI. Remove this student from the ranking.

Step 5: Starting from the top, choose a certain number of students who commit to attend ACM Hong Kong so that in addition to the IOI and NOI team members, there will be Z in total. These students will be ACM Hong Kong observing team members. The default teams are formed according to the ranking, with the exception that all IOI/NOI team members must be placed in the first three teams. Students who would like to swap teams must obtain approval from all students in their original teams. For example, if the 2nd ranked student would like to swap teams with the 7th ranked student, then approval must be obtained from the 1st, 3rd, 8th, 9th ranked students. All IOI/NOI team members must stay in one of the first three teams.

The selected IOI and NOI team members will be recommended to EDB for final approval. The ordered list of teams will be submitted to the ACM Hong Kong organizer, who may select a sublist for capacity reasons.

Required commitment

Once the selection process is completed, withdrawal will not be permitted under any circumstances. All selected students are required to attend ACM Hong Kong. IOI and NOI team members are required to attend additional team training sessions in June and July.