提交代码、在线测试与评测结果
指南说明通用操作。当前域的权限、报名状态、时间限制及教师设置决定你能使用的选项。
操作步骤
- 阅读题目的提交类型和输入输出要求,点击“提交”。
- 选择正确的语言与版本。提交什么语言写的代码,这里就选什么语言。
- 粘贴完整源码,或上传文件。提交答案题应按页面说明上传答案文件。
- 如果题目侧栏提供“在线编程模式”,可以先用样例或自定义输入运行自测;具体步骤见下文。
- 正式提交后打开评测记录,查看状态、得分、运行时间、内存和允许公开的测试点信息。
- 修改代码后重新提交;评测记录页可以回看自己的历史尝试。
在线编程与自测
从题库、课程或比赛中打开一道可以访问并提交的题目,在题目侧栏点击“在线编程模式”。选择语言并编写完整程序。普通编程题支持自测;远程评测题取决于对应语言是否支持本地自测,交互题、提交答案题等类型不提供此操作。学生、教师和管理员均按当前题目、比赛及语言的提交权限操作。
- 编辑器底部显示“自测”区,依次填写“输入数据”和“期望输出”。题面样例旁的“填充到自测”会同时填入样例输入与输出,并展开自测区。
- 填写期望输出后会自动勾选“比较期望输出”。如果预期没有任何输出,保持期望框为空,手动勾选比较;只想查看运行结果时取消勾选。
- 点击“运行自测”,或按 F9。等待编译和运行结束,在“实际输出”中查看程序输出。
- 启用比较时显示“与期望输出一致”或“与期望输出不一致”;不一致时显示第一处差异的行号、列号以及期望和实际字符,空格、换行、制表符和输出结束会明确标注。
- 编译失败、运行错误、超时等会显示对应状态;展开“编译与诊断”查看编译信息和程序标准错误输出。程序标准错误输出不会参与结果比较。
- 可以拖动代码与自测区之间的分隔线调整高度,点击“收起”隐藏,再用顶部“自测”按钮展开。手机上输入输出纵向排列,使用左侧“题目”按钮切换题面与代码。
比较会统一 Windows、Linux 的换行符,忽略行末的空格与制表符(Tab),并忽略输出末尾的一个换行;行首、行内的空白及额外空行仍须一致。比较时忽略的行末空白仍会保留在实际输出中。这是对自定义期望文本的比较,不代替题目正式判题,尤其不能代替特判或浮点误差判定。程序执行失败、输出被截断或评测端未提供独立输出时,不会显示比较通过。每路输出超过 102400 个字符时会截断并停止比较。
修改代码、语言、输入或期望输出后,旧结果会标记“内容已修改,请重新运行”。自测受到站点次数限制,按钮倒计时结束后才能再次运行;正式提交仍通过原有“递交评测”操作完成。
结果怎样理解
| 状态 | 意思 | 优先检查 |
|---|---|---|
| AC / Accepted | 本次提交通过 | 是否处于正确的课程或比赛上下文 |
| CE / Compile Error | 编译失败 | 所选语言、语法、编译信息 |
| WA / Wrong Answer | 答案不正确 | 算法、边界、输入输出格式 |
| TLE / Time Limit Exceeded | 运行超时 | 复杂度、死循环、输入规模 |
| MLE / Memory Limit Exceeded | 内存超限 | 数组规模、容器、递归与内存使用 |
| RE / Runtime Error | 程序运行错误 | 越界、除零、非法访问、栈空间 |
| System Error | 评测系统出错 | 保留记录链接,向管理员反馈 |
Waiting、Fetched、Compiling、Judging 表示尚未得到最终结果。比赛可能按赛制隐藏部分反馈,不能据此判断评测出了故障。
文件输入输出
默认情况下,题目通常使用标准输入输出。如果题面或提交页要求文件输入输出,要使用指定的文件名,注意大小写与后缀。页面提供快捷输入输出工具时,也要核对生成的代码是否符合本题要求。
常见问题
- 样例正确却没有通过: 隐藏数据可能覆盖更大的规模和更多的边界情况。
- 看不到自测或无法运行: 核对题目类型、所选语言、提交权限和当前比赛限制;如果只是收起了面板,可点击顶部“自测”。
- 看不到其他人的代码: 代码查看受域权限、比赛时间和题目设置的限制。
- 队列一直不动: 查看服务状态,反馈记录链接及等待时间,避免连续重复提交同一份代码。