常见问题解答

admin  |  2025-08-22 09:16:07

Q: 本评测系统使用的代码编译选项是什么?

A: 本评测系统运行于 Ubuntu Linux 系统。C/C++ 代码使用 GNU GCC/G++ 编译器,Pascal 代码使用 Free Pascal 编译器,Java 代码使用 openjdk-7-jdk 编译器。各语言编译选项如下:

C语言: gcc Main.c -o Main -fno-asm -Wall -lm --static -std=c99 -DONLINE_JUDGE
C++: g++ Main.cc -o Main -fno-asm -Wall -lm --static -std=c++11 -DONLINE_JUDGE
Pascal: fpc Main.pas -oMain -O1 -Co -Cr -Ct -Ci
Java: javac -J-Xms32m -J-Xmx256m Main.java
*Java 代码执行和评测时会额外增加 2秒时间 和 512MB 内存

- 编译器版本:

  • Gcc 版本 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  • Glibc 2.31-0ubuntu9.2
  • Free Pascal 编译器版本 3.0.4+dfsg-23
  • Openjdk "17.0.4+8-1~20.04"
  • Python 3.8.5
Q: 编写代码时如何进行数据输入输出?

A: 必须从 stdin(标准输入) 读取数据,并向 stdout(标准输出) 输出结果。

输入输出示例:

C++:
#include 
using namespace std;
int main(){
    int a,b;
    while(cin >> a >> b)
        cout << a + b << endl; return 0; }
C语言:
#include 
int main(){
    int a,b;
    while(scanf("%d %d",&a, &b) != EOF)
        printf("%d\n",a+b);
    return 0;
}
Pascal:
program p1001(Input,Output);
var a,b:Integer;
begin
    while not eof(Input) do
    begin
        Readln(a,b);
        Writeln(a+b);
    end;
end.
Java:
import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner cin = new Scanner(System.in);
        int a, b;
        while (cin.hasNext()){
            a = cin.nextInt(); b = cin.nextInt();
            System.out.println(a + b);
        }
    }
}
Q: 提交代码后各种评测消息的含义是什么?

A: 评测消息含义如下:

  • 等待评测:代码已提交,等待评测
  • 等待重新评测:等待重新评测
  • 编译中:正在编译提交的代码
  • 答案正确:所有测试用例均通过
  • 输出格式错误:输出格式与题目要求不符
  • 答案错误:输出结果不正确
  • 时间超出限制:未在规定时间内完成计算
  • 内存超出限制:超出内存限制
  • 输出超出限制:输出数据量超过限制
  • 运行时错误:程序运行期间发生错误
  • 编译错误:编译过程中出现错误

如有其他疑问或建议,请通过 讨论版 联系我们。