#include <cstdio>
#include <fstream>
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <algorithm>
typedef long long int ll;
typedef double db;
#define DBG printf("*")
using namespace std;
int opt;
char c[10000000];
char s[10000000];
int ap,sp;
int main()
{
printf("output situation?\n");
scanf("%d",&opt);
int tot=0;
bool checked=true;
int kc,ks;
do
{
system("gen.exe");
if(opt) printf("gen run out.\n");
//read program a
system("a.exe");
if(opt) printf("a run out.\n");
freopen("out.txt","r",stdin);
ap=0;
while(!feof(stdin)) c[ap++]=getchar();
fclose(stdin);
//read program b
system("b.exe");
if(opt) printf("b run out.\n");
freopen("out.txt","r",stdin);
sp=0;
while(!feof(stdin)) s[sp++]=getchar();
fclose(stdin);
//compare
if(opt) printf("start compare\n");
kc=0,ks=0;
int it=0;
while(kc!=ap || ks!=sp)
{
//ignore space and enter
while(kc<ap && c[kc]==' ' || c[kc]=='\n' || s[ks]=='\r')
kc++;
while(ks<sp && s[ks]==' ' || s[ks]=='\n' || s[ks]=='\r')
ks++;
//if(it<5) { printf("%d %d\n",c[kc],s[ks]); }
//compare
if(c[kc]!=s[ks]){ checked=false; break; }
kc++; ks++;
it++;
}
if(opt) printf("check out!\n");
tot++;
if(!opt) { if(tot%10==0) printf("%d\n",tot); }
else printf("==%d==\n",tot);
}
while(checked == true && tot<=10000);
if(checked==false)
{
printf("checked failed.\nat the %d case.\nat charactor %d and %d.\ndatafile is in the folder.\n",tot,kc,ks);
}else
{
printf("check complete,no any wrong thing detacted.\nfor %d cases.\n",tot);
}
system("PAUSE");
return 0;
}
windows下的对拍用小玩意
最新推荐文章于 2021-03-11 23:31:14 发布