使用说明:
        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下对拍脚本的更多相关文章

  1. Linux下对拍脚本与随机数生成器

    对拍脚本 新建一个文档 check.sh 作为对拍脚本. #!/bin/bash while(true)do #死循环 ./data > .in #运行数据生成器,将数据输出到1.in ./st ...

  2. Linux下定时执行脚本(转自Decode360)

    文章来自:http://www.blogjava.net/decode360/archive/2009/09/18/287743.html Decode360's Blog  老师(业精于勤而荒于嬉 ...

  3. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  4. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

  5. 实用脚本 2 -- Linux下定时执行脚本

    今天学习Linux下定时执行脚本,看到一篇讲解比较好的文章,特此拿来分享. 原文链接:http://www.blogjava.net/decode360/archive/2009/09/18/2877 ...

  6. Linux下kill进程脚本

    Linux下kill进程脚本 在Linux有时会遇到需要kill同一个程序的进程,然而这个程序有多个进程,一一列举很是繁琐,使用按名字检索,统一kill Perl脚本 使用方法 kill_all.pl ...

  7. Linux下shell通用脚本启动jar(微服务)

    Linux下shell通用脚本启动jar(微服务) vim app_jar.sh #!/bin/bash #source /etc/profile # Auth:Liucx # Please chan ...

  8. linux 下shell 编写脚本

    linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...

  9. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

随机推荐

  1. ELK 企业内部日志分析系统

    生产环境配置 亿级规模,建议64G内存+8核CPU ES JVM占用一半内存 生产环境的3节点的集群 https://blog.csdn.net/xuduorui/article/details/79 ...

  2. Shiro实战教程(二)

    http://www.jianshu.com/p/6786ddf54582/ https://www.cnblogs.com/ealenxie/p/10610741.html

  3. Lua的各种资源1

    Libraries And Bindings     LuaDirectory > LuaAddons > LibrariesAndBindings This is a list of l ...

  4. 4-Python数据类型之元组-字符串

    目录 1 元组概念 1.1 元祖的特点 1.2 元组的定义 1.3 元组的访问 1.4 元组的查询 2 命名元组 3 字符串 3.1 字符串的基本操作 3.1.1 字符串的访问 3.1.2 字符串的拼 ...

  5. kvm 简单了解

    网络: *主机(装有ESX的PC服务器)简称host,虚拟机简称guest *Host的一个或多个网卡组成一个虚拟交换机,虚拟交换机上创建端口组label,端口组指定vlan tag,虚拟机指定网络标 ...

  6. mysqldump 逻辑备份的正确方法【转】

    1. 利用mysqldump进行逻辑备份 1)全逻辑备份: mysqldump -uxxx -p --flush-logs --delete-master-logs --all-databases & ...

  7. Android 反编译神器jadx的使用

    一.前言 今天介绍一个非常好用的反编译的工具 jadx .jadx 的功能非常的强大,对我而言,基本上满足日常反编译需求. jadx 优点: 图形化的界面. 拖拽式的操作. 反编译输出 Java 代码 ...

  8. 安装sudo apt-get install ros-kinetic-desktop-full,报错mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的文件状态(stat): 没有。。。。

    安装sudo apt-get install ros-kinetic-desktop-full,报了一堆错误 mv: 无法获取'/var/lib/ni/licenses.xml.dpkg-old' 的 ...

  9. Oracle 序列(sequence)的创建、修改及删除

    1.Oracle 创建序列化:create sequence xxxx create sequence student_id minvalue --最小值 nomaxvalue --不设置最大值(由机 ...

  10. CentOS7中开机出现end_request:I/O error,dev fd0,sector 0的解决办法

    https://blog.csdn.net/wangjinyang_123/article/details/40583635