NOI系列活动中编程语言使用限制

2022年9月27日 | 分类: 【编程】

关于NOI系列活动中编程语言使用限制的补充说明

网址:https://www.noi.cn/xw/2021-09-01/735729.shtml

根据NOI活动的发展形势,NOI科学委员会特对NOI系列活动(包括CSP-J/S在内)中编程语言的使用做如下补充说明:

1、除题面有明确要求外,C++程序编译默认采用的语言标准为C++14;
2、除题面有明确要求并允许以外,禁止在源代码中自行指定任何编译选项;
3、允许使用以下划线开头的库函数或宏,但具有明确禁止操作的库函数和宏除外(禁止操作参见上述第2条,以及《关于NOI系列赛编程语言使用限制的规定》编程通则部分:https://www.noi.cn/gynoi/tlgd/2011-04-14/710432.shtml);
4、已发布的NOI系列赛技术类规则如与本说明冲突,冲突部分以本说明为准;
5、其余未尽事项仍按现有规则执行。

在此重申,凡在NOI系列活动中使用明确禁止的内容者,其源代码将直接判为零分,且不接受就此提出的任何申诉。

CCF NOI科学委员会

2021年9月1日

关于NOI系列赛编程语言使用限制的规定

2011-04-14 10:00:00

网址:https://www.noi.cn/gynoi/tlgd/2011-04-14/710432.shtml

本规定适用于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子句)之外的其他单元。

凡满足上述规定,并且能在题目规定的命令行下编译通过的程序均为合法的源程序。但即使源程序合法,只要程序执行时有违规行为时,仍被判定为违规。

本规定自公布之日起生效。

中国计算机学会

2011年4月14日