F.A.Q / 常见问题解答

Q 我可以使用什么编程语言,并且每个编译器的参数是怎样的?

A 本系统目前支持C、C++、Java三种语言,分别使用GCC、G++和JDK6进行评测,编译器的版本和参数分别为:
  • GCC (v4.7.2):gcc.exe src.c -o test.exe
  • G++ (v4.7.2):g++.exe src.c -o test.exe
  • JDK6 (Update 45):javac.exe -encoding utf-8 Main.java

Q 我如何在 Online Judge 上编写我的程序?

A 评测系统中的输入都是通过标准输入给出的,您的输出也需要以标准输出的形式输出。

对于 A + B 程序(Problem 1000),使用C语言来编写:


上述程序使用C++语言来编写:


上述程序使用Java语言来编写:

Q 评测机的回应代表什么?

A 评测机的回应如下列表所示:
  • Pending / Rejudge Pending(等待 / 重测等待):表明您的程序正在排队等待评测,请稍等片刻。
  • Judging(评测中):表明您的程序正在评测中。
  • Compile Error(编译错误):表明您的程序无法在评测机上编译,您可以在“Online Status”页面查看详细信息。
  • Runtime Error(运行错误):表明您的程序在运行时出现错误,您可以在“Online Status”页面查看详细信息。
  • Time Limit Exceeded(时间过长):表明您的程序运行时间超出了规定最长的时间。
  • Memory Limit Exceeded(内存过量):表明您的程序使用的内存超出了规定最大的内存。
  • Output Limit Exceeded(输出过多):表明您程序输出了过多的内容,请确保您的程序没有出现死循环。
  • Wrong Answer(答案错误):表明您的程序输出了错误的答案,请注意,评测时使用的数据远远比样例数据复杂的多。
  • Presentation Error(格式错误):表明您程序输出内容的格式与标准输出不完全一致,请检查空格、回车等是否输出正确。
  • Accepted(通过):表明您的程序是正确的并且通过了评测机的测试。

Q 为什么我的C / C++程序评测机回应 Compile Error(编译错误)?

A 评测机使用的编译器为GCC / G++,可能与您使用的VC++有所不同,例如:
  • main 函数必须定义为 int 类型,同时在 main 函数结束前请使用return 0,如果使用 void main() 将会产生 Compile Error。
  • 数值转字符串函数 itoa 不是 ANSI 标准函数,请使用其他替代方案。
  • 64位整型 __int64 不是ANSI编码规范中的,您可以使用 long long 来代替。由于我们使用的 Windows 操作系统,所以在使用 scanf 和 printf 的时候,请使用 "%I64d" 代替 "%lld"。

Q 我如何从头到尾读取评测数据?

A 如果遇到题目中没有给出数据个数,您可以这样读取评测数据:
读取数字
C
int n;
while(scanf("%d", &n) != EOF)
{
  //Do Something
}
C++
int n;
while (cin >> n)
{
  //Do Something
}
Java
Scanner in = new Scanner(System.in);
while (in.hasNextInt()){
    int n = in.nextInt();
    //Do Something
}
读取字符
C
char w;
while ((w = getchar()) != EOF)
{
  //Do Something
}
C++
char w;
while (cin.get(w))
{
  //Do Something
}
Java
Scanner in = new Scanner(System.in);
while (in.hasNext()){
    string w = in.next();
    //Do Something
}
读取行
C
char l[1024];
while(gets(l))
{
  //Do Something
}
C++
string l;
while (getline(cin, l))
{
  //Do Something
}
Java
Scanner in = new Scanner(System.in);
while (in.hasNextLine()){
    string l = in.nextLine();
    //Do Something
}

Q 允许提交的最大代码长度是多少?

A 本系统允许提交的最大代码长度为 32767 字节(32KB)。