hdu 1073 Online Judge

/*
很有意思的一道题 
*/
#define LOCAL
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<iomanip>
#include<string>
#include<algorithm>
#include<ctime>
#include<stack>
#include<queue>
#include<vector>
#define N 5005
#define AC 1
#define PE 2
#define WA 3
using namespace std;
int check(char a[N],char b[N],int la,int lb)
{
    int i,j,t,l1,l2;char a1[N],b1[N];
    if(la==lb&&strcmp(a,b)==0) return AC;
    l1=0;
    for(i=0;i<la;i++)
    {if(a[i]!=' '&&a[i]!='\t') a1[l1++]=a[i];}
    l2=0;
    for(i=0;i<lb;i++)
    {if(b[i]!=' '&&b[i]!='\t') b1[l2++]=b[i];}
    if(strcmp(a1,b1)==0) return PE;
    else return WA;
}
int main()
{
#ifdef LOCAL
       freopen("input.txt","r",stdin);
       freopen("output.txt","w",stdout);
#endif

      int ncase,la,lb,na,nb,i,l,t;
      char a[N],b[N],c,temp[N],d[N];
      cin>>ncase;
      while(ncase--)
      {
             na=nb=0;
             gets(temp);
             while(strcmp(temp,"START")!=0) gets(temp);
             la=0;
             while(gets(temp),na++,strcmp(temp,"END"))
             {
                     l=strlen(temp);
                     for(i=0;i<l;i++)
                            a[la++]=temp[i];
             }
             gets(temp);
             while(strcmp(temp,"START")!=0) gets(temp);
             lb=0;
             while(gets(temp),nb++,strcmp(temp,"END"))
             {
                     l=strlen(temp);
                     for(i=0;i<l;i++)
                            b[lb++]=temp[i];
             }
             t=check(a,b,la,lb);
             switch(t)
             {
                 case AC:if(na==nb)cout<<"Accepted"<<endl;
                      else cout<<"Presentation Error"<<endl;
                      break;
                 case WA:cout<<"Wrong Answer"<<endl;break;
                 case PE:cout<<"Presentation Error"<<endl;break;        
              }              
      }
    return 0;
}

你可能感兴趣的:(hdu 1073 Online Judge)