- C++
class Solution {
public:
void solve() {
// 解决过程;
}
};
- Python 3
class Solution:
def solve(self):
# 解决过程
- Java
import java.util.Scanner;
class Solution {
public void solve(Scanner input) {
// 解决过程;
}
}
-
关于用户的输入输出:
只需要使用标准的 cin / cout / scanf / printf ,input / print 就可以, Java 直接使用给出的 Scanner 即可, 并且无需考虑多组输入。
-
关于 example:
是一道无套路的 a + b 题。
- C++: Judge/judge.cpp
- Java: Judge/judge.java
- Python3: Judge/judge.py
判题时需要保持 Repo 中的目录形式(也可自行改动判题脚本中的文件读取位置)。
- Data 目录存放题目数据,
- Judge 目录存放判题脚本和编译文件(.exe .class),
- Source 目录存放需要判断的程序。
C++ 和 Python 的判题脚本可以使用命令行也可以使用 IDE。
Java 判题脚本说明如下。
编译时在根目录(COH-Judge-Script)中使用命令行:javac ./Judge/judge.java
。
执行时使用命令:java Judge.judge
。
in (.txt)
out (.txt)
answer (.txt)
- 判题脚本调用提交代码,如果有时间开发的话就进行关键词过滤。
- 编译、运行脚本
- 脚本读入数据集 data,把输出导出到 out 文件中
- out 与答案集 answer 进行对比
- 返回正确率
- 关键词过滤(防止恶意代码)
- 时间判定(防止死循环 / 复杂度太大等)
- 返回出错的行数