資格及提名

HKOI 的參賽者將根據其就讀年級及年齡分為兩個組別,分別是初級組和高級組。對於 HKOI (n-1)/n,在 (n-20) 年 7 月 1 日或以後出生的學生有資格參加高級組。就讀中四 / Grade 10 / Year 11 或以下,並在 (n-17) 年 7 月 1 日或以後出生的學生亦有資格參加初級組。

HKOI 只接受學校提名,並以先到先得的方式處理。每間香港日間中學最多可提名 8 名學生參加高級組和 8 名學生參加初級組。每名學生只可被提名參加一個組別。

初賽

在初賽中,初級組和高級組的參賽者都須應考兩份試卷——卷一和卷二。未能於報到時間抵達編配之比賽場地的參賽者將被取消資格,參賽者不得提早離場。兩份試卷之間沒有休息時間。

兩份試卷均包含選擇題和簡答題。試卷將以中英文合本形式提供。口頭指示將以廣東話和英語提供。

參賽者應根據指示在答題紙上寫下答案。比賽期間不得使用任何書面或電子資源(例如字典、計算機)。

卷一

卷一為 50 分鐘的試卷。卷一滿分為 25 分,每題的分數可能不同。它包含 Python 和 C++ 均適用的問題。所有問題均須作答。

卷二

卷二為 40 分鐘的試卷。卷二滿分為 20 分,每題的分數可能不同。卷二設有兩個版本 — Python 版本和 C++ 版本。每個版本中的問題可能需要特定於該編程語言的知識。參賽者將會收到兩個版本,但參賽者必須且只須作答其中一個版本,並在答題紙上註明所選版本。對於同時作答兩個版本或未正確註明所選版本的參賽者,其 Python 版本將不予考慮。

評分

對於在卷二中選擇 C++ 版本的參賽者,其最終分數將為卷一分數與卷二 C++ 版本原始分數之和。

對於在卷二中選擇 Python 版本的參賽者,其卷二 Python 版本原始分數將會被換算成卷二換算分數。換算過程詳見附錄。其最終分數將為卷一分數與卷二換算分數之和。

每個組別的最低出線分數為,在每組最多 96 名參賽者晉級的前提下最低的最終分數。

決賽

在決賽中,兩個組別的參賽者都將參與實習測試。測試時間為 3 小時。未能於報到時間抵達編配之比賽場地的參賽者將被取消資格,參賽者不得提早離場。

試卷將包含 4 道編程題目,每題 100 分。試卷滿分為 400 分。每道題目將進一步分為一個或多個子任務。每個子任務的分數可能不同。

參賽者只會收到在提名表格中選擇的語言版本的紙本試題。但是,參賽者可以通過更改 HKOI 網上評測系統(HKOI Online Judge;「網上評測系統」)的顯示語言設定來閱讀另一語言版本。口頭指示將以廣東話和英語提供。

除提供的軟件(例如內置計算機工具)外,參賽者在比賽中不得使用任何書面或電子資源(例如字典、計算機)。

提交答案及評審

參賽者應使用允許的編程語言之一編寫程式來解答題目。他們應該在比賽時間內通過網上評測系統提交他們的答案源代碼。參賽者每 60 秒最多可提交一次,每題最多可提交 50 次。

提交答案後,網上評測系統將編譯參賽者提交的源代碼,然後使用一組參賽者不知道的數據來評估編譯後的程式。評測完成後(通常在幾分鐘內),參賽者將收到有關提交的評測結果,包括每個子任務中遇到的第一個錯誤類型(如有)。要獲得子任務的分數,參賽者的程式必須對該子任務中的所有測試數據都正確。參賽者的最終分數將是已解決或部分解決的子任務所得分數的總和。

分數有可能因測試數據更改或參賽者所提交答案的不確定性而改變。不確定性可能是由於使用隨機數生成器而有意產生的,也可能是由於程式錯誤或邊緣運行時間而無意產生的。裁判保留對提交答案重新進行評測的權利,最終分數將以最終評測結果為準。

即使評測結果延遲或無法提供,也不會給予額外時間。

編程語言及環境

參賽者應使用 C++ (C++20) 實現他們的答案。

Python (3.10 或以上版本) 亦可作為次等編程語言使用。並非所有任務和子任務都可以使用 Python 解決。

工作站

每個參賽者將獲編配一台工作站以連接比賽虛擬主機。參賽者不得跳出虛擬主機環境以操作工作站。

雖然會提供鍵盤和滑鼠,但我們建議參賽者自備一個鍵盤及一隻滑鼠於比賽時使用。無線鍵盤/滑鼠、含可編程按鍵、需安裝驅動程式之鍵盤/滑鼠、及裝有「青軸」(或等同)的機械鍵盤均不可使用。裁判團保留檢查及拒絕任何鍵盤和滑鼠之權利。

虛擬主機

中央處理器:4 個 vCPU(以 2 個物理核心上的 4 個超線程實現)。基本頻率 2.5 GHz 或更高。
內存:8 GB 或更高
磁碟空間:至少 2 GB 可用磁碟空間

已安裝軟件
– 操作系統:Debian 10 “Buster”
– 顯示管理系統:XFCE4
– Google Chrome,用於連接網上評測系統及其內置的「Code」IDE
– Visual Studio Code(包含 C++、Python 和 Code Runner 插件)
– g++12
– python3.10
– gdb、vim、nano、zip、unzip、cppreference-doc-en-html

虛擬主機中軟件版本可能與用於評測的版本不同。提交的源程序檔將會以網上評測系統「說明」頁所示之編繹器及選項進行編繹。

查詢

比賽時,參賽者可透過「問答」功能,要求大會裁判澄清題目的文字描述。監考員將使用以下其中一種方式回答澄清問題:
– 「No Comment/Please refer to task statement 無可奉告/請見題目」
– 「Invalid Question (not a Yes/No Question) 無效問題(不是是非題) 」
– 「Yes 是」或「No 否」——僅當題目說明確實包含錯誤或嚴重歧義時。在這種情況下,將向所有參賽者公佈澄清內容。

協助

如參賽者欲飲水或前往洗手間,他們必須先用「問答」功能提出要求。獲監考員批准後,方可飲水或前往洗手間。如監考員認為提出次數過多,或有其他參賽者在洗手間,要求可被拒絕。未經批准擅自飲水或離開座位將視為作弊行為。

獎項

請參閱獎項頁面。

處分、取消比賽資格

參賽者如違反下列任何本比賽之規則,本會可取消其比賽資格或作扣分處分:
(1) 作弊、試圖作弊或協助他人作弊
(2) 不附合參加組別之參賽條件
(3) 其個人資料與提名表格不符
(4) 欠帶所需文件 (身分證及/或學生證)
(5) 比賽前以不正當方法獲悉題目內容
(6) 比賽期間有未經許可之物品(實物或電子)在可接觸之範圍,不論等物品可否用作作弊
(7) 意圖或以任何方式與他人通訊,以謀取不當的利益
(8) 未經監考員許可而擅自離開座位
(9) 干擾比賽電腦、其他參賽者之作答、網路及/或其他系統
(10) 於比賽前、比賽時或比賽後違反HKOI網上評測系統之使用條款
(11) 未經許可即翻閱試題或於比賽完結時裁判宣布停止作答後仍繼續作答,手持文具或改動答卷
(12) 違反監考員的合理指示
(13) 對測試數據進行逆向工程 (詳見 IOI 規則)

嚴重違規者可被永久禁止參加所有 HKOI 相關活動。

初賽時,不按指示填寫答題紙之參賽者會被扣分。每事項扣不少於全卷滿分百分之一之分數。

附錄

私隱和資料政策

參賽者應注意,本會將會拍照、錄影和螢幕攝錄,並將其公開用於宣傳目的。

答卷和提交的程式源代碼可能會被保留並用於教育和研究目的。決賽結果,包括所有提交的分數和詳細評測結果,將對所有網上評測系統用戶公開。

將於 HKOI 2025/26 實施的改變

如果學生在上一年在相同或更高級別的組別中獲得金牌,則該學生在參加 HKOI 2025/26 或之後的比賽時將:

不佔用決賽名額:如果學生在初賽中的得分不低於最低出線分數,則該學生將晉級決賽。因此,決賽中可能會有超過 96 名學生。

在決定要頒發的金、銀、銅獎和優異獎數量時,不計入決賽選手人數:用於確定獎項名額的決賽選手人數永遠不會超過 96 人。

不佔用獎項名額:學生將根據其分數和分數線獲得最高的獎項,分數線只基於其餘學生的分數計算得出。

換算方法

請參閱「HKOI Heat Event Equating Method」文件(只提供英文版本)