准备4个cpp文件
- ac.cpp(ac代码)
- wa.cpp(错误代码)
- data.cpp(生成数据用的)
- duipai.cpp(用来根据dat生成的数据对比ac代码和wa代码是否一致)
其中data.cpp
#include<bits/stdc++.h>
using namespace std;
const int num = 100000; //数据数量 num
int maxn = 10000; //数据范围 -maxn ~ maxn
int a[num];
int main(){
srand(time(0));
for(int i = 0; i < num; i++){
a[i] = rand()%(2*maxn-1)+1 - maxn;
}
for(int i = 0; i < num; i++){
printf("%d\n", a[i]);
}
return 0;
}
duipai.cpp
用管道重定向,cmd里fc命令判断差异
#include<bits/stdc++.h>
using namespace std;
int main(){
int t=10; //比较多少次
system("g++ ac.cpp -o ac");
system("g++ wa.cpp -o wa");
while(t--){
system("g++ data.cpp -o data");
system("data > data.txt");
system("ac < data.txt > a.txt");
system("wa < data.txt > w.txt");
if(system("fc a.txt w.txt")) break;
else
cout<<"loading..."<<endl;
}
system("pause");
return 0;
}