使用说明:
1. 被测代码, 正确代码, 生成器代码均使用文件输入输出;
2. 对拍前会清屏, 请注意;
3. 输出文件的文件名请和代码文件名保持一致;
4. 若无限循环输出 AC 未停, 则很可能正确; 输出 WA 并跳出那就 WA 了;
5. WA 时输出两份答案, 被测在前, AC 在后;
6. enjoy coding;
代码:
- #!/bin/bash
- clear; # 清屏
- read -p "输入被测源代码名称 (不含拓展名):" a # a 就是待测代码名称
- read -p "输入正确源代码名称 (不含拓展名):" b # b 是暴力 / AC 代码名称
- read -p "输入生成器代码名称 (不含拓展名):" c # 数据生成器, 一组即可, 需要随机
- # 以下进行编译三份代码
- gcc $a.cpp -o $a -Wall -lm --static -DONLINE_JUDGE;
- gcc $b.cpp -o $b -Wall -lm --static -DONLINE_JUDGE;
- gcc $c.cpp -o $c -Wall -lm --static -DONLINE_JUDGE;
- # 不会被一闪而过的 AC 盖掉编译信息
- read -p "按任意键以继续:" -n 1
- # 开始对拍
- while true; do
- ./$c>$c.in
- ./$a<$c.in>$a.out
- ./$b<$c.in>$b.out
- if diff $a.out $b.out; then
- printf "AC\n" # 如此, 一直正确就会无限输出 AC
- else
- echo "WA" # WA 了就跳出
- cat $a.out $b.out
- exit 0
- fi
- done
备用.
请使用手机 "扫一扫"x
来源: http://www.bubuko.com/infodetail-2690715.html