常见问题:
Q1:我的程序要在哪里输入和输出数据?
A1:你的程序必须从stdin(基本输入)读入数据并且从stdout(基本输出)输出数据. 例如,你使用C语言的话,使用scanf输入数据,使用printf输出数据,使用C++语言的话,还可以使用cin和cout读入输出数据。
请注意,你不能进行任何文件的读写操作,否则会返回错误"Restrict Function Call"。
Q2:评测服务器的性能怎样?
A2:正常情况下,在OJ的1000题上使用GNU C++编译器提交以下代码,评测结果为使用时间接近1秒。
<span style="font-size:18px;">#include<stdio.h>
int main()
{
int a,b,i;
while(scanf("%d%d",&a,&b)!=EOF)
printf("%d\n",a+b);
for(i=0; i<450000000; ++i)
++a;
return 0;
}</span>
Q3:为什么我得到了CE?而在我的电脑上运行的很好?
A3:不同的编译器之间有一些语法的差异,请使用相应的编译器进行提交。
另外,我们的OJ对编译器所使用的资源有所限制,限制是:CPU时间5秒,内存使用128MB,如果你使用的编译器在编译你的程序时超过这个资源限制,将被判为CE。
Q4:有些题目上面有“Special Judge”是什么意思?
A4:Special Judge是指本题可能有多个正确的解。你的程序的答案将被一个SPJ的检测程序检测,以判断你的程序是否正确。请注意:SPJ的题目一般不会判出PE,所以请确保你的程序输出格式正确。
Q5:我要怎么使用64-bit整形?
A5:在C/C++和Pascal语言中,你可以用以下方法使用64-bit整形:
有符号64-bit整形,取值范围为:-9223372036854775808 到 9223372036854775807。
语言 | GCC/G++ | Pascal | VC/VC++ |
类型名称 | long long | int64 | __int64 |
输入方法 | scanf("%I64d", &x); | read(x); | scanf("%I64d", &x); |
输出方法 | printf("%I64d", x); | write(x); | printf("%I64d", x); |
无符号64-bit整形,取值范围为:0 到 18446744073709551615。
语言 | GCC/G++ | Pascal | VC/VC++ |
类型名称 | unsigned long long | qword | unsigned __int64 |
输入方法 | scanf("%I64u", &x); | read(x); | scanf("%I64u", &x); |
输出方法 | printf("%I64u", x); | write(x); | printf("%I64u", x); |
Q6:OJ返回的结果分别是什么意思?
A6:以下是OJ可能返回的结果和其意义:
Accepted | OK! 你的程序是正确的。 |
Presentation Error | 你的输出结果是正确的,但格式不正确,可能是你多输出或少输出了空格、Tab(\t)、换行(\n)等,请检查你的程序输出。 |
Wrong Answer | 你的程序输出的结果不正确。 |
Time Limit Exceed | 你的程序尝试使用超过题目限制的时间,可能是你的程序内存在死循环或者你的程序的算法效率太低。 |
Memory Limit Exceed | 你的程序尝试使用超过题目限制的内存。 |
Restrict Function Call | 你的程序尝试使用不允许的系统API,请注意,打开任意文件将被判为RFC。 |
Runtime Error | 你的程序发生了运行时错误。可能是由于除于0、内存访问违规等运行时问题。 |
Compile Error | 你的程序不能通过编译,请点击该结果可以查看编译器提示。 |
Output Limit Exceed | 你的程序的输出超过了系统限制。请检查你的程序是否存在死循环问题。目前系统的限制是8MB。 |
Judging | 你的程序正在评测当中,请稍候。 |
Queuing | OJ正在评测其它用户的提交,请你稍等片刻。 |
System Error | 未知错误,如果有该评测结果,请及时联系管理员。 |
注意:对于Java语言,有极少部分可能将RFC与RE判成WA。