Significant changes from last year’s rules are highlighted.


The HKOI 2020/21 is comprised of the Heat Event and the Final Event. The competition focuses on problem-solving, basic algorithms, data structures and programming techniques.

The HKOI 2020/21 is divided into two groups, namely the Junior Group and Senior Group, according to the age of the participants. Students born on or after 1st July 2004 are eligible for the Junior Group whereas those born on or after 1st July 2001 are eligible for the Senior Group. Each student may only participate in one group.

Each day secondary school in Hong Kong will be allowed to nominate up to 16 students, including 8 Senior Group nominees and 8 Junior Group nominees, to participate in the HKOI 2020/21.

Questions will be available in both Chinese and English versions. Verbal instructions will be given in Cantonese. For participants who do not understand Cantonese, instructions in Putonghua or English will be provided on request.

Contestants should note that photos may be taken and publicized for promotional purposes.

Prevention Measures, Health Declaration

Contestants must carefully read and abide by our Prevention Measures. They must check their body temperature, bring their completed Health Declaration Form to the competition venue. Contestants making false, incomplete or misleading declaration will disqualified from the competition.

Contingency Plan

If there are further local outbreaks of COVID-19 that the EDB announces the suspension of in-person classes, the competition will be adjusted as follows unless otherwise announced:
Heat Event: Postponed until in-person classes are resumed.
Final Event: Postponed until in-person classes are resumed or held online. If to be held online, students will be required to stream their computer screen and camera to the invigilators and the streams will be recorded. Eligible finalists can choose to compete online or withdraw from the competition at their discretion. Schools and teachers should take this possibility into account when nominating students and respect their decisions on whether to compete in the online Final Event.

Heat Event

In the Heat Event, contestants of both Junior and Senior Groups will have to complete a written paper, consisting of multiple-choice questions and short questions. The duration will be one and a half hours. Contestants who do not show up by the reporting time will be disqualified. Early leave is not allowed.

Other than basic stationery, contestants are not allowed to use any of their own resources, including paper and calculator, in the competition.

The programming languages used in the Heat Event will be Pascal (Free Pascal)[NOTE], C (C99)[NOTE] and C++ (C++98). Programs / program segments in all 3 programming languages will be given side-by-side. Contestants must indicate their choice of language on the answer sheets. (Choose only one)

For each group, the minimum qualifying score shall be the lowest score such that not more than 90 contestants advances.

Final Event

In the Final Event, participants of both Groups will take a practical test. The duration will be 2.5 hours. Contestants who do not join the Google Meet meeting by the reporting time will be disqualified. Early leave is not allowed. Using the toilet is not allowed.

Programming Languages

Contestants shall answer in C++ (C++11) using Dev-C++ 5.11 (TDM-GCC 4.9.2).

Contestants may also use the following 2nd-class programming languages and development software. 2nd-class programming languages are experimental. We cannot guarantee that the problems are solvable using such languages. We also cannot guarantee the proper functioning of the software provided. Contestants may use such languages at their own risk.

2nd-class Language 2nd-class Development Software
Pascal Free Pascal 3.0.4
C (C99) Dev-C++ 5.11 (TDM-GCC 4.9.2)
Java 8 JDK 1.8.0
Python 3.8 Python 3.8.2
Not Applicable Visual Studio Code (with Pascal, C/C++, Java and Python plugins)

Resources and Workstation

Each contestant should use their own computer (Client Computer) to connect to the competition workstation (Virtual Machine) provided by the organiser. Contestants are not allowed to use any other written or electronic resources in the competition.

During the competition, contestants are allowed to seek clarification on the wordings of the tasks from the Adjudicators 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.

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.
Communication Webcam (built-in or peripheral) + Microphone (built-in or peripheral) + Speakers (built-in or peripheral) or
A camera-equipped mobile phone with Google Meet installed
Webcam + Microphone + Speakers and a camera-equipped mobile phone with Google Meet installed (for redundancy) Headphones are not allowed
Input Devices Keyboard, mouse / trackpad Keyboard and mouse. Trackpad is not recommend. Macro / calculation functions must be disabled.

Virtual Machine

The software listed in the Programming Languages section will be installed in a Windows Server 2019 virtual machine which the contestants must connect to via Chrome Remote Desktop. All development must be performed in the virtual machine and contestants are not allowed to switch away from the remote desktop software. Submitted programs will be compiled under the Linux operating system.

Known issues:
1. Free Pascal “User Screen (Alt+F5)” is not functioning properly
2. Visual Studio Code C plugin is inoperative


CPU: 4 vCPUs (implemented as 4 hyperthreads on 2 physical cores). Base frequency 2.5 GHz or higher.
Memory: 8 GB or higher
Disk space: At least 2 GB free space on local disk


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 through a web interface. The adjudicators 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.


Any queries about the competition should reach the Chief Adjudicator within 5 minutes after the end of the competition, before exiting the competition venue. The decision of the Adjudicators will be final.


A contestant may be disqualified from the competition or suffer a penalty if the contestant:
(0) cheats, attempts to cheat or helps other to cheat
(1) does not meet the eligibility for the age group
(2) has personal particulars that do not match those provided in the nomination form
(3) improperly obtains or attempts to obtain knowledge of question papers prior to the competition
(4) has unauthorised physical or electronic article(s) within reach during the competition, whether or not the article(s) could be used for cheating
(5) communicates or attempts to communicate with any persons during the competition in an attempt to gain unfair advantage
(6) leaves their assigned seat without invigilator’s permission
(7) tampers with the competition workstation, other contestants’ work, judging system network and/or other systems
(8) violates the HKOI Online Judge terms of use, before, during or after the competition
(9) starts to read or work on the question paper before being instructed to do so or continues to hold any stationery or work on the answer script after being told to stop working at the end of the competition
(10) disobeys the reasonable instructions of an invigilator
(11) reverse engineers the test data (please refer to IOI rules for details)
(12) fails to meet the invigilation requirements (applicable if the Final Event is changed to online)

Serious offenders may be banned from all HKOI-related activities.

Special announcement regarding Pascal and C programming languages

For the advancement of the competition and to align with IOI’s decision, the HKOI Organizing Committee will be making the following arrangements regarding the Pascal and C programming languages unless circumstances change.

– HKOI 2019/20: Pascal has became a 2nd-class language in the Final Event. Pascal in the Heat Event will remain unchanged. Also, the syllabus will explicitly include divide and conquer sorting algorithms — Quick Sort and Merge Sort.
– Team Formation Test 2020: Pascal and C has been removed from the TFT.
– HKOI 2022/23: Pascal and C will be removed from both Heat Event and Final Event.