Major changes since the Team Formation Test (Round 1) are highlighted.

Top 15 students from Round 1 must complete the IOI application form to be eligible for Round 2. See details below.

Please visit this page frequently for rule updates.

Supplemental Documents

Students should also read the following documents. They form part of the rules.

Team Formation Test 2020 (Round 2) Procedures
Team Formation Test 2020 (Round 1 & 2) Privacy and Data Policy


Date: 16th August 2020 (Sunday)
Format: Online with invigilation

13:00 – 13:30 Reporting Time. Contestants who do not report by 13:30 will be disqualified.
13:30 – 13:50 Preparation
13:50 – 14:00 Waiting Room
14:00 – 19:00 Contest Time (5 Hours)
19:00 – 19:05 After End

Competition Details and Eligibility

Criteria for participating in the TFT (Round 2)
  • Top 15 in Round 1
  • A full-time Hong Kong secondary school student at all times between 1st Sept 2019 and 1st June 2020.
International Olympiad in Informatics (IOI) International Olympiad of Metropolises (IOM)
Date 13th – 19th September 2020 At this time, we do not have concrete information about this competition. They are listed here only for describing the selection algorithm in case the HKOI Training Team decides to send a team.
Location Online; hosted by Singapore.
*Actual arrangement TBC*
Additional Criteria
  • Born on or after 1st July 2000
  • A holder of Hong Kong Permanent Identity Card


On Monday 10th August, we will send an email containing a link to the IOI application form (Commitment Agreement and Parent’s Consent) to the top 15 students in Round 1. Students who do not submit the form by the deadline (15th August 2020) shall forfeit their eligibility. Even if you are not interested in or are not eligible for the IOI, you should choose the option “No” and submit the form.

Walk-in / observers are not allowed.

Allowed Programming Languages

The allowed programming languages are C++14 and Java (note) All tasks can be solved using C++. For Java, we do not guarantee that a working compiler or IDE can be provided. Also, some tasks may not accept Java solutions.


Each contestant should use their own computer (Client Computer) to connect to the competition workstation (Virtual Machine) provided by the organiser.

Client Computer

To connect to the Virtual Machine and to support invigilation, the Client Computer should meet the following specifications.

Minimum requirements Recommended Specification Restrictions
Operating System Desktop computer (Windows / MacOS / Linux) or
Laptop Computer (Windows / MacOS / Linux / Chromebook)
Windows / Linux / Chromebook. MacOS is not recommended due to key mapping differences. Each contestant may only use one computer
Browser Chrome Other browsers are not recommended
Display Built-in or External
1920×1080 Each contestant may only use one display. If the contestant connects an external display to a laptop, the built-in display must be turned off. The Virtual Machine’s maximum resolution is 1920×1080
Communication Webcam (built-in or peripheral) + Microphone (built-in or peripheral) + Speakers (built-in or peripheral)
and a camera-equipped mobile phone with Google Meet installed (or two such phones)
Headphones are not allowed
Input Devices Keyboard, mouse / trackpad Keyboard and mouse. Trackpad is not recommend. Macro / calculation functions must be disabled.

Virtual Machine


Virtualization: Amazon AWS “c5.xlarge”
CPU: Intel Xeon Platinum 8275CL “Cascade Lake” @ 3.0 GHz up to 3.6 GHz all core turbo. 2 cores 4 threads (exposed to the VM as 4 CPUs)
Memory: 8 GB + 2 GB swap
Disk space: At least 1.5 GB free space on local disk + 100 MB network drive quota.
Display: 1920×1080 maximum

Installed Software

Operating System: Debian 10 “Buster”
Display Manager: XFCE4
Google Chrome
Visual Studio Code with the following extensions: C/C++ v0.28.3, Language Support for Java by Red Hat v0.64.1, Code Runner v0.11.0
G++ 8.3.0 (Debian 8.3.0-6)
OpenJDK Runtime Environment (AdoptOpenJDK) (build 1.8.0_252-b09)

Submitted programs will be compiled using the compilers and compilation flags specified in the Help page of the Online Judge. Participants are not allowed to use any of their own resources in the competition.


The Team Formation Test 2020 (Round 2) consists of one paper. It will be 5 hours long. The paper is only available in English. 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.

The syllabus shall be the latest version of the IOI syllabus.

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 type of error first encountered (if any) for each subtask. A contestant’s final score will be the sum of points received from solved or partially-solved subtasks. Contestants may submit at most once per task per 60 seconds, and at most 50 times per task.


During the competition, contestants are allowed to seek clarification on the wordings of the tasks from the Adjudicators by using the competition web interface. 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 assigned invigilator within 5 minutes after the end of each paper, before leaving the seat or disconnecting from the Google Meet meeting. The decision of the Adjudicators will be final.


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.

Selection Algorithm

IOM are included here for reference only. The following algorithm will be used in case the Training Team decides to send a team.

One ranking for each external competition will be produced. For each competition:

  • – The ranking will only include the students who are eligible for the competition.
  • – The ranking will only include the students who commit to attend the competition.
  • – Students will be ordered by the total subtask scores.
  • – In case of ties, compare their last submission that resulted in a score increase. The one with the earlier submission time shall rank higher.

Then, the potential delegates will be selected as follows:

Step 1: 4 IOI members

The top 4 students in the IOI ranking will be selected.

Step 2: 2 IOM member

The top 2 students in the IOM ranking will be selected.

Other Opportunities

Should there be other learning opportunities, the training team may select members with reference to the TFT (Round 1), TFT (Round 2) and APIO ranking and eligibility criteria.

Required Commitment and Results Announcement

The training team will submit the test results, student profiles and comments from the trainers to the Education Bureau and the Hong Kong Academy for Gifted Education for review and approval. Withdrawal will not be permitted under any circumstances.

Potential delegates will be notified of the final selection results. The HKOI Organizing Committee’s decision shall be final.

All selected members are required to attend team training sessions in August.