红联Linux门户
Linux帮助

linux下简单对拍shell脚本

发布时间:2016-08-09 13:33:52来源:linux网站作者:yTexas
1.数据创建
datamaker.cpp:
#include <bits/stdc++.h>  
using namespace std;  
typedef long long int ll;  
ll rget( ll a, ll b)  
{  
return (rand() % (b - a) ) + a;//产生范围为 [a, b]的随机数  
}  
int main()  
{  
srand( (unsigned int) time( NULL ));//以时间为随机种子  
ll T = 100;  
cout << T << endl;//T組样例  
while(T--)  
{  
//数据生成部分具体根据题意写  
}  
return 0;  
}  
 
2.对拍脚本
#!/bin/bash  
rm data  
rm out1  
rm out2  
g++ datamaker.cpp -o datamaker  
#运行datamaker,将测试数据存入data文件  
./datamaker >> data  
#将data文件中数据输入要测试的程序,再输出到文件out1、out2  
cat data | ./Main >> out1  
cat data | ./ans >> out2  
#比较out1 out2  
if diff out1 out2; then  
printf "Accept\n"  
else  
echo WrongAnswer  
fi  
 
此脚本方便之处在于无需在源代码中添加freopen之类输入重定向即可实现数据输入输出,缺点暂时没发现。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23151.html