使用说明:
        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. 如何阻止自动更新‘updated_at’和'created_at'

    可以在模版中添加一条代码: public $timestamps = false;

  2. 从INT_MAX和INT_MIN看补码

    刷一道题的时候遇到INT_MAX和INT_MIN的问题,有些东西忘了,梳理一下. INT_MAX为2147483647,INT_MIN为-2147483648,为什么MIN的绝对值比MAX多1呢,因为 ...

  3. zabbix 监控服务器的TCP状态

    本文介绍如何监控TCP的11种状态: 1.命令选择: ss or netstat netstat 在 Centos7上已经不再支持,ss 打印基于socket的统计信息,实际运行下来,ss的速度比ne ...

  4. An impassioned circulation of affection(尺取+预处理)

    题目链接:http://codeforces.com/contest/814/problem/C 题目: 题意:给你一个长度为n的字符串,m次查询,每次查询:最多进行k步修改,求字符c(要输入的字符) ...

  5. Hie with the Pie(POJ3311+floyd+状压dp+TSP问题dp解法)

    题目链接:http://poj.org/problem?id=3311 题目: 题意:n个城市,每两个城市间都存在距离,问你恰好经过所有城市一遍,最后回到起点(0)的最短距离. 思路:我们首先用flo ...

  6. SMB MS17-010 利用(CVE-2017-0144 )

    exploit-db : https://www.exploit-db.com/exploits/42315/ 该漏洞的影响版本很广泛:Microsoft Windows Windows 7/8.1/ ...

  7. 【Explain】mysql之explain详解(分析索引的最佳使用)

    在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain 这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句 ...

  8. struts入门

    1.概念

  9. apache2启动失败(Failed to start The Apache HTTP Server.)解决方案

    不知道如何启动apache2就启动不来了. 如下图所示: 即使卸载了重新装也是如此 经过测试卸载并清除软件包的配置即可解决 sudo apt-get purge apache2  sudo apt-g ...

  10. nginx之日志设置详解

    nginx的日志设置 access_log access_log是服务器记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息:是一种非常详细的记录信息:如果我们不关心谁访问了我们,可以关闭: ...