NOI评测环境及对编程语言使用限制的规定

发表在    NOIP 10-10 09:48:57

1 2594 0

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

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

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


登录或注册后发布评论