问:提交代码到服务器后,评判系统返回的结果分别代表什么意思?
答:我们的在线评判系统返回的结果可能包含一下几种之一:
Waiting:你的代码已经提交到服务器,并处于一个等待队列中等待评判程序的评判。请稍后再刷新 status页面。
Accepted:恭喜你,你的程序已经通过测试!
Presentation Error:你的程序输出的答案可能是正确的,但是你的程序没有严格按照题目中规定的输出格式输出,请修正你的输出格式。
Wrong Answer:你的程序不能针对每一组输入的测试数据都产生一个正确的输出结果。
Runtime Error:你的程序在执行时发生了运行时错误,具体的错误信息的解释请看下面。
Time Limit Exceeded:你的程序不能在规定的时间内完成评判系统给出的测试数据,请改进你的算法时间效率。
Memory Limit Exceeded:你的程序在计算评判系统给出的测试数据是占用了超过限制的内存空间,请改进你的算法空间效率。
Compile Error:你提交的代码不能被编译器成功编译。
问:我的程序被判为Runtime Error了,SIGXXX是什么意思?
答:我们的在线评判系统使用Unix System V的信号机制判断测试程序的Runtime Error。
SIGSEGV --- 段错误。一下几种情况可能会导致这种错误。
SIGFPE --- 除0错误。
SIGBUS --- 硬件错误。请与我们联系。
SIGABRT --- 程序异常退出。
其他的错误请查看Linux手册:man 7 signal
注意:如果你的程序在结束时没有向系统返回0,那么你的程序很可能会被判Runtime Error。详细情况请查看1001的例子程序。
问:在线评判系统支持哪几种编程语言?使用什么编译器?
答:目前我们支持4种语言:C、C++、Java、 Pascal。
C语言使用GNU GCC编译器,版本:4.0.2(20050808),编译参数如下:
gcc foo.c -o foo -ansi -fno-asm -O2 -Wall -lm --static -DONLINE_JUDGE
C++语言使用GNU GCC-g++编译器,版本:4.0.2(20050808),编译参数如下:
g++ foo.c -o foo -ansi -fno-asm -O2 -Wall -lm --static -DONLINE_JUDGE
Java语言暂时使用GNU GCC-gcj编译器,版本:4.0.2(20050808),编译参数如下:
gcj foo.java --main=Main -o foo -O2 -Wall -lm --static -DONLINE_JUDGE
Pascal语言使用GNU Pascal(GPC)和Free Pascal(FPC)两种编译器,GPC版本:20050331,FPC版本:2.0.2(20051207)。
GPC编译参数:
gpc foo.pas -o foo -O2 -Wall -lm --static -DONLINE_JUDGE
FPC编译参数:
fpc -Co -Cr -Ct -Ci -dONLINE_JUDGE foo.pas