ACM评判结果.txt如果你同时爱几个人,说明你年轻;如果你只爱一个人,那么,你已经老了;如果你谁也不爱,你已获得重生。积极的人一定有一个坚持的习惯。本系统可以对您提交的源代码进行编译并且运行,然后判断您提交的程序是否符合题目的要求,最后给出相应的信息。具体信息如下:
Waiting :系统无法在第一时间给所有提交以评判结果。
Compiling : 您提交的代码正在被编译。
Running : 您的程序正在系统上运行。
Accepted (AC) : 您的程序是正确的,恭喜!
Presentation Error (PE) : 虽然您的程序貌似输出了正确的结果,但是这个结果的格式有点问题。请检查程序的输出是否多了或者少了空格(' ')、制表符('\t')或者换行符('\n')。
Wrong Answer (WA) : 输出结果错,这个一般认为是算法有问题。
Time Limit Exceeded (TLE) : 您的程序运行的时间已经超出了这个题目的时间限制。
Memory Limit Exceeded (MLE) : 您的程序运行的内存已经超出了这个题目的内存限制。
Output Limit Exceeded (OLE) : 您的程序输出内容太多,超过了这个题目的输出限制,多半是死循环引起的。
Compilation Error (CE) : 您的程序语法有问题,编译器无法编译。具体的出错信息可以点击链接察看。
Out Of Contest TIme : 比赛已经结束,这个只有在比赛中才会出现
Runtime Error (RE) : 运行时错误,这个一般是程序在运行期间执行了非法的操作造成的。以下列出常见的错误类型:
ACCESS_VIOLATION 您的程序想从一些非法的地址空间读取或向其中写入内容。一般例如指针、数组下标越界都会造成这个错误的。
INTEGER_DIVIDE_BY_ZERO 在进行整数除法的时候出现了除数为零的异常。
STACK_OVERFLOW 栈溢出。一般是由于无限递归或者在函数里使用了太大的数组变量的
原因。
本系统的评判流程是这样子的:对用户提交的源程序进行编译,如果编译通过,则运行编译好的EXE文件,同时使EXE文件从文本数据中读取测试数据,
并同时保存EXE文件的输出,如果EXE文件运行没有超出规定的时间与内存空间,则对EXE输出的数据与正确答案数据进行比对,最后给出结果。所以用户的程序仍然使用标准输入输出,例如题目1000可以这样子写
常见问题解答
1. 我的程序如何进行输入输出?
2. 在线判题系统(以下简称POJ)的编译器是哪些?
printf输出格式java3. 提交的时候可否使用快捷键?
4. 请问提交的程序是如果被判答的?
5. POJ对提交程序的不同判答的意义?
6. Special Judge的题目有什么不同?
7. 如何确定程序读入的终止?
8. 为什么我的程序在GCC/G++ (C/C++)下被判成WA/TLE/RE,但是在C/C++ (GCC/G++)下被判成AC?
9. 有些题目的时间限制是1,但是有些程序却以几秒的时间AC?
10. 我的程序仅仅超过时间限制15MS,我该怎么优化程序呢?
11. 我还有其他问题?
________________________________________
问题: 我的程序如何进行输入输出?
解答: 你的程序应该始终使用标准输入(stdin)和标准输出(stdout).比如,你可以使用scanf(C/C++
译器下)或者cin(C++编译器下)来读取数据,使用printf(C/C++编译器下)或者cout(C++编译器下)
来输出答案.用户提交的程序将不允许读/写文件操作.如果你坚持要这样做,OJ很可能会返回Runtime
Error(运行时错误)或者Wrong Answer(答案错误).
另外还要注意的是在C++下的I/O操作.由于其复杂的内部实现方式,cincout相对于scanfprintf来说
要慢上不少.如果在G++下编译提交,速度的差异将会愈加明显.所以如果题目给出的数据将有巨大的输入
数据时,使用cincout有可能导致意外的Time Limit Exceed(超时).
________________________________________
问题: 在线判题系统的编译器是哪些?
解答: 目前我们使用5个编译器来支持各种语言的程序提交.CC++采用的是MS-VC++ 6.0,而对于
GCC/G++,采用的是MinGW+GCC/G++ 3.4.2. 对于Pascal, 采用的是FreePascal 2.0.0. 对于Java, 采用的
JDK 1.5.0.
下面是1000的正确程序在不同编译器下的写法:
 
C and GCC:
#include <stdio.h>
 
int main(void)
{
  int a, b;
  scanf(\"%d %d\", a, &b);
  printf(\"%d\\n\", a + b);
  return 0;
}
 
C++ and G++:
#include <iostream>
 
using namespace std;
 
int main(void)
{
  int a, b;
  cin >> a >> b;
  cout << a + b << endl;
  return 0;
}
 
使用GCC/G++的提醒:
对于64位整数, long long int __int64 都是支持并且等价的.但是在读和写的时候只支持scanf(\"%
I64d\", ...)printf(\"%I64d\", ...).
不支持\"%lld\"是因为MinGW下的GCCG++使用的msvcrt.dll动态链接库并不支持C99标准.
根据ISO C++标准,G++,main函数的返回值必须是int,否则将会导致Compile Error(编译错误)的判答
.
 
Pascal:
Program p1000(Input, Output);
Var
  a, b: Integer;
 
Begin
  Readln(a, b);
  Writeln(a + b);
End.
 
Java:
import java.util.*;
 
public class Main
{
  public static void main(String args[])
  {
    Scanner cin = new Scanner(System.in);
    int a = Int(), b = Int();
    System.out.println(a + b);
  }
}
 
使用JAVA的提醒:
Java程序的提交必须使用单个源文件.除了要遵守其他程序提交的规则之外,使用Java提交的程序还必须
从一个静态的main方法开始执行,并让该main方法置于一个名为Main的类中,否则将会导致Compile
Error(编译错误)的判答.遵守了上述规则的情况下,你可以实现和初始化任意需要的类.
JDK 1.4下的一个标准程序如下:
import java.io.*;
import java.util.*;
public class Main
{
  public static void main (String args[]) throws Exception
  {
    BufferedReader stdin =
      new BufferedReader(
        new InputStreamReader(System.in));
    String line = adLine();
    StringTokenizer st = new StringTokenizer(line);
    int a = Integer.Token());
    int b = Integer.Token());
    System.out.println(a + b);
  }
}
 
________________________________________
问题: 提交的时候可否使用快捷键?
解答: 以下是提交页面的快捷键
ALT+s 提交
ALT+u 用户名域(如果你还没有登陆)
ALT+l 编译语言选项
ALT+p 提交的题目ID
________________________________________
问题: 请问提交的程序是如果被判答的?
解答: POJ首先将你提交的程序存为文件,然后试图按照你选择的编译语言进行编译.如果编译出现错误,
将会判答Compile Error.然后POJ运行您的程序,将输入数据送入程序,并且开始计时(记录程序的运行时
).输入数据储存在一个或多个输入文件中.每一个文件都会用来判定你的程序并且只使用一次.在程序
执行过程中,如果POJ发现你的程序的运行状态符合Runtime Error, Time Limit Exceed, Memory Limit
Exceed 或者 Output Limit Exceed的标准,这些判答就会返回并结束.这意味着在TLE或者MLE的情况下,
不能确定程序是否能在充裕的硬件和时间条件下得到正确的结果.当你的程序跑完一个输入文件时,POJ
会对你的输出文件和相应标准输出文件进行比较,或者在Speical Judge的题目时进行Special Judge.
果输出是不正确的且不满足Presentation Error,将会给与Wrong Answer判答并结束.否则POJ将会继续进
行下一个输入文件的运行和处理.如果所有的输入文件都已结束,如果整个过程中没有遇到上述的6种错误
但是输出的符合Presentation Error的条件,将会给与Presentation Error的判答并结束.否则,恭喜