Linux下对拍脚本
使用说明:
1. 被测代码、正确代码、生成器代码均使用文件输入输出;
2. 对拍前会清屏,请注意;
3. 输出文件的文件名请和代码文件名保持一致;
4. 若无限循环输出AC未停,则很可能正确;输出WA并跳出那就WA了;
5. WA时输出两份答案,被测在前,AC在后;
6. enjoy coding;
Update:
新版本的对拍脚本看上去更优美了,无实质性修改:
#!/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 # 开始对拍 cnt=; while true; do ./$c>$c.in ./$a<$c.in>$a.out ./$b<$c.in>$b.out cnt=``; if diff $a.out $b.out; then printf "\33[1;32m✔ Accepted\033[0;32m on Test\033[1;34m #%d\033[0m\n" $cnt; # 如此,一直正确就会无限输出AC else printf "\33[1;35m✘ Wrong Answer\033[0;32m on Test\033[1;34m #%d\033[0m\n" $cnt;# WA了就跳出 exit fi done
(旧)代码:
#!/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 # 开始对拍 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 fi done
上一版本
备用。
Linux下对拍脚本的更多相关文章
- Linux下对拍脚本与随机数生成器
对拍脚本 新建一个文档 check.sh 作为对拍脚本. #!/bin/bash while(true)do #死循环 ./data > .in #运行数据生成器,将数据输出到1.in ./st ...
- Linux下定时执行脚本(转自Decode360)
文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog 老师(业精于勤而荒于嬉 ...
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
- 实用脚本 2 -- Linux下定时执行脚本
今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...
- Linux下kill进程脚本
Linux下kill进程脚本 在Linux有时会遇到需要kill同一个程序的进程,然而这个程序有多个进程,一一列举很是繁琐,使用按名字检索,统一kill Perl脚本 使用方法 kill_all.pl ...
- Linux下shell通用脚本启动jar(微服务)
Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...
- linux 下shell 编写脚本
linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...
- 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出
有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...
随机推荐
- 使用纯 CSS 实现响应式的图片显示效果
有许多方法可以实现页面里图像的响应式显示(Responsive).然而,我碰到的所有方案都使用了JavaScript.这使我疑惑不用 JavaScript 实现图像响应是否可行. 我提出了下面纯CSS ...
- win10环境变量
jdk8 JAVA_HOME D:\devsoft\jdk\jdk1.8 CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar pa ...
- java正则: 忽略大小写匹配
import java.util.regex.Matcher; import java.util.regex.Pattern; import com.sun.org.apache.xerces.int ...
- Deep Learning基础--SVD奇异值分解
矩阵奇异值的物理意义是什么?如何更好地理解奇异值分解?下面我们用图片的例子来扼要分析. 矩阵的奇异值是一个数学意义上的概念,一般是由奇异值分解(Singular Value Decomposition ...
- Lynx以纯文本的形式下载网页
Lynx是一款基于命令行的web浏览器 [root@test88 ~]# yum install lynx -y [root@test88 ~]# lynx www.baidu.com 以纯文本的形式 ...
- 让MySql支持Emoji表情存储
java后台报错,如下. aused by: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x84' for column ...
- effective c++读书笔记(一)
很早之前就听过这本书,找工作之前读一读.看了几页,个人感觉实在是生涩难懂,非常不符合中国人的思维方式.之前也有博主做过笔记,我来补充一些自己的理解. 我看有人记了笔记,还不错:http://www.3 ...
- LightOJ - 1297 Largest Box LightOJ(一元三次方程求极大值)
题目链接:https://vjudge.net/contest/28079#problem/K 题目大意:给你一个长为L,宽为W的纸片,四个角剪掉边长为x的正方形,如下图所示,然后折成一个无盖的纸盒, ...
- Codeforces 813B The Golden Age(数学+枚举)
题目大意:如果一个数t=x^a+y^b(a,b都是大于等于0的整数)那就是一个unlucky数字.给你x,y,l,r(2 ≤ x, y ≤ 10^18, 1 ≤ l ≤ r ≤ 10^18),求出l到 ...
- csu 1803(余数分类)
1803: 2016 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 565 Solved: 364[Submit][Status][Web Board ...