您的位置:首页 > 其它

UVA 10188 Automated Judge Script

2013-05-13 20:37 375 查看
注意PE的判断,只判断数字。

如果是先判断ac的情况,然后判断PE的话,在判断不是AC后要重新开始判断是不是PE,不能嵌套在AC里判断PE。(因为这个WA了N次,最后改成函数之后避免了这个问题,如果不用函数的话一定要注意分开判断)

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char ans[110][150],test[110][150];
char num_1[15000],num_2[15000];
int num_ans,num_test;
int is_ac()
{
int i;
if(num_ans!=num_test)
return 0;
for(i=0; i<num_ans; i++)
if(strcmp(ans[i],test[i])!=0)
return 0;
return 1;
}
int is_pe()
{
int i,j;
int len_1=0,len_2=0,len;
for(i=0; i<num_ans; i++)
{
len=strlen(ans[i]);
for(j=0; j<len; j++)
if(ans[i][j]>='0'&&ans[i][j]<='9')
num_1[len_1++]=ans[i][j];
}
num_1[len_1]='\0';
for(i=0; i<num_test; i++)
{
len=strlen(test[i]);
for(j=0; j<len; j++)
if(test[i][j]>='0'&&test[i][j]<='9')
num_2[len_2++]=test[i][j];
}
num_2[len_2]='\0';
if(!strcmp(num_1,num_2))
return 1;
return 0;
}
int main()
{
int i,j,flag,num=1;
while(cin>>num_ans&&num_ans)
{
flag=0;
getchar();
for(i=0; i<num_ans; i++)
gets(ans[i]);
cin>>num_test;
getchar();
for(i=0; i<num_test; i++)
gets(test[i]);
if(is_ac())
flag=1;
else if(is_pe())
flag=2;
else
flag=0;
cout<<"Run #"<<num++<<": ";
if(flag==1)
cout<<"Accepted"<<endl;
else if(flag==2)
cout<<"Presentation Error"<<endl;
else
cout<<"Wrong Answer"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: