对拍
对拍模板(P1001 A+B Problem)
Part 1
随机造数据的代码(\(data\))。
#include<bits/stdc++.h>
const int mod=1e6;
using namespace std;
int main()
{
freopen("data.in","w",stdout);
srand(time(0));//通过time来制造随机数,如果不用输出的是伪随机数
//按输入格式随机并输出
return 0;
}
Part 2
能保证正确率的代码(\(std\))。
文件输入输出部分
freopen("data.in","r",stdin);
freopen("std.out","w",stdout);
Part 3
不确定正确率但比 \(std\) 更优的代码(\(test\))。
文件输入输出部分
freopen("data.in","r",stdin);
freopen("test.out","w",stdout);
Part 4
判断输出是否相同的代码(\(judge\))。
#include<bits/stdc++.h>
#include<windows.h>
const int Case=20;//测试点个数
using namespace std;
int main()
{
for(int i=1;i<=Case;i++)
{
system("data.exe > data.in");//运行data,并将造的数据存在data.in里
system("std.exe < data.in > std.out");//运行std.exe,将data.in里的数据输入至std.exe,再将输出存在std.out里
double Begin=clock();//记录目前代码运行开始时的时间
system("test.exe < data.in > test.out");//运行test.exe,将data.in里的数据输入至test.exe,再将输出存在test.out里
double End=clock();//记录目前代码运行结束时的时间
bool res=system("fc test.out std.out");//判断std.out与test.out的输出是否相同,相同返回false,不同返回true
printf("#测试点 %d\n",i);
if(!res)//输出相同
{
printf("AC %.3lfms\n",End-Begin);
//运行开始时间减去运行结束时间就是代码运行总时间
}
else//不满足
{
puts("WA");
break;//退出循环
}
Sleep(500);//休眠半秒
}
return 0;
}

浙公网安备 33010602011771号