在线评测
洛谷评测系统运行于 Linux 上,虽与主流竞赛相同,但无法保证 Linux 内核版本一致。洛谷评测系统采用分布式集群保证评测效率,采用基于 Linux 内核 cgroup 模块的沙盒技术保证评测安全。
洛谷评测系统支持的语言请参考下面的语言支持部分。
注意
除 C/C++/Pascal 外的语言,由于常数时间差距,不保证正确算法的执行所用时间和内存能够通过评测而不超出 限制。洛谷不为此类语言提供多余的时间和内存限制。
目前所有支持 O2 优化的语言将默认开启 O2 优化,用户可手动关闭。有"O2 优化"标签的题目在评测时均会自动开启 O2 优化,题目上传者或者管理员可根据需要自行开启。
优先级:“O2 优化”标签 > “O2 优化”选项
各个评测状态
- AC:Accept,程序通过。
- CE:Compile Error,编译错误。
- PC:Partially Correct,部分正确。
- WA:Wrong Answer,答案错误。
- RE:Runtime Error,运行时错误。
- TLE:Time Limit Exceeded,超出时间限制。
- MLE:Memory Limit Exceeded,超出内存限制。
- OLE:Output Limit Exceeded,输出超过限制。
- UKE:Unknown Error,出现未知错误。
为什么在本地/其他网站 AC 了,洛谷上却没过?请点击查阅常见问题。
Special Judge
语言支持
洛谷评测系统的语言环境使用 Nix 准备,Nix 的配置、使用的 nixpkgs 版本、使用的编译器版本公开在 luogu-dev/judge-env。
评测环境中定义环境变量 ONLINE_JUDGE=luogu
,可根据此判断是否在评测环境。
输入输出格式
各语言的标准输入输出方法请参考 P1001 A+B Problem。
C/C++ 家族
C/C++ 家族提供多个 C/C++ 语言标准的 GCC 编译环境,这些标准为:
- C (C99, ISO/IEC 9899:1999)
- C++98 (ISO/IEC 14882:1998)
- C++11 (ISO/IEC 14882:2011)
- C++14 (ISO/IEC 14882:2014)
- C++17 (ISO/IEC 14882:2017)
- C++20 (ISO/IEC 14882:2020)
他们都有相同的编译开关:
# O2 优化开关为 -O2
gcc -x c -std=c99 -DONLINE_JUDGE -Wall -fno-asm -lm -march=native
g++ -x c++ -std=$version -fPIC -DONLINE_JUDGE -Wall -fno-asm -lm -march=native