信息學競賽之編程規則

本規定適用於NOI系列的各項全國性競賽。NOI其它規章、規則中所有與本規定不符之處,均以本規定為準。不遵守本規定所造成的不良後果由選手本人承擔。評測環境與競賽環境相同。

編程通則

1.對於每一道試題,選手只應提交一個源程序文件。源程序文件名由試題名稱縮寫加後綴構成,源程序文件名及後綴一律使用小寫。PASCAL、C及C++程序的後綴分別為.pas,.c,或.cpp。當參賽選手對一道試題提交多份使用不同後綴的源程序文件時,測試系統按照.c, .cpp, .pas的順序選取第一份存在的文件進行編譯和評測,並忽略其他文件。

2.使用C/C++語言者不得使用自己的頭文件,使用Pascal語言者不得使用自己的庫單元。除另有規定外,每道題參賽程序源文件不得大於100KB,如選手在規定目錄下另建其它子目錄,這些子目錄中的文件均會被評測系統忽略。

3.選手程序應正常結束並返回Linux系統,主函數的返回值必須為0。

4.選手程序中只允許通過對指定文件的讀寫、以及對指定庫函數的調用等題目中明確規定的方式與外部環境通信。在程序中嚴禁下列操作:

· 試圖訪問網絡

· 使用fork、exec、system或其它線程/進程生成函數

· 打開或創建題目規定的輸入/輸出文件之外的其它文件和目錄

· 運行其它程序

· 改變文件系統的訪問權限

· 讀寫文件系統的管理信息

· 使用除讀寫規定的輸入/輸出文件之外的其它系統調用

· 捕獲和處理鼠標和鍵盤的輸入消息

· 讀寫計算機的輸入/輸出端口

5.除題目另有規定外,選手程序中所使用的靜態和動態內存空間總和不得超過128MB。

信息學競賽之編程規則

對C程序的限制

程序禁止使用內嵌彙編和以下劃線開頭的庫函數或宏(自己定義的除外)。

在程序中只能使用下述頭文件以及被它們所間接包含:assert.h, ctype.h, errno.h,float.h,limits.h,math.h,stdio.h,stdlib.h,string.h,time.h。

64位整數只能使用long long類型及unsigned long long類型。

信息學競賽之編程規則

對C++程序的限制

程序禁止使用內嵌彙編和以下劃線開頭的庫函數或宏(自己定義的除外)。

64位整數只能使用long long類型及unsigned long long類型。

可以使用STL中的模板。

信息學競賽之編程規則

對Pascal程序的限制

程序禁止使用內嵌彙編,並禁止使用任何編譯開關。

在程序中禁止使用除system庫(自動加載)和math庫(須用uses math子句)之外的其他單元。

凡滿足上述規定,並且能在題目規定的命令行下編譯通過的程序均為合法的源程序。但即使源程序合法,只要程序執行時有違規行為時,仍被判定為違規。

本規定自公佈之日起生效。


分享到:


相關文章: