ACM对拍程序

ACM对拍程序过程。。。

一、用随机程序生成符合题目的输入数据文件名为in.txt

如何产生随机数:

http://www.cnblogs.com/lvsi/archive/2011/04/21/2024079.html

二、用AC的程序和你的程序分别跑数据in.txt

AC程序生成out1.txt  你的程序生成out2.txt

在生成输出数据的时候最好把输入的一些关键数据也一并输出,这样避免回头在in.txt中找对应的哪组输入是WA的数据

三、在两个输出数据的所在目录下新建一个txt  输入

fc out1.txt out2.txt 

pause

另存为.bat的扩展格式。。。 最后运行这个bat文件就OK了。

fc  是file compare 的缩写,pause 是为了让比较结果停止以便查看。

fc 只显示每组差异中的第一行和最后一行,而不是显示所有不同的行。

所以在输出的时候不要输出太多的换行!!!



ACM windows对拍模板 (详细注释版)


@echo off
:ac

e-make>e.in  :出数据
e-3<e.in>e.out    :被测程序
e-2<e.in>e.out2   :暴力程序
fc e.out e.out2
:diff -q e.out e.out2 这句可以代替上一句
if errorlevel=1 goto wa     
echo ac
goto ac

:wa
echo wa
:type e.out e.out2 :这句可有可无
pause

退出状态
  此命令返回下列退出值:
  0 未找到不同处。
  1 找到不同处。
  >1 发生错误。

ACM linux对拍模板 shell脚本(详细注释版)

while true; do
./make>tmp.in #出数据
./tmp<tmp.in>tmp.out #被测程序
./tmp2<tmp.in>tmp2.out #正确(暴力)程序
if diff tmp.out tmp2.out; then #比较两个输出文件
printf AC #结果相同显示AC
else
echo WA #结果不同显示WA,并退出
#cat tmp.out tmp2.out
exit 0
fi #if的结束标志,与C语言相反,0为真
done # while的结束标志

#BY NICK WONG 2014-08-29
#在终端下,进入当前目录,输入"sh ./nick.sh",(其中nick.sh为当前shell脚本名) '#'表示单行注释
#diff在两文件相同时返回空串




转载于:https://www.cnblogs.com/lzq1126/p/5596849.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值