http://acm.hdu.edu.cn/showproblem.php?pid=1073

模拟oj判题

随便搞,开始字符串读入的细节地方没处理好,wa了好久

#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std ; 
char s1[100005],s2[100005] ;
char s3[100005],s4[100005] ;
int main()
{
    int t ;
    scanf("%d%*c",&t) ;
    while(t--)
    {
        scanf("%*s%*c") ;
        char ch ;
        int st=0 ;
        while(ch=getchar())
        {
            s1[st++]=ch ;
            if(ch=='\n' && st>3 && s1[st-4]=='E' && s1[st-3]=='N' && s1[st-2]=='D')
                break ;
        }
        s1[st-5]='\0' ;
        scanf("%*s%*c") ;
        st=0 ;
        while(ch=getchar())
        {
            s2[st++]=ch ;
            if(ch=='\n' && st>3 && s2[st-4]=='E' && s2[st-3]=='N' && s2[st-2]=='D')
                break ;
        }
        s2[st-5]='\0' ;
        if(!strcmp(s1,s2))
        {
            puts("Accepted") ;
        }
        else
        {
            st=0 ;
            for(int i=0 ;i<strlen(s1) ;i++)
                if(s1[i]==' ' || s1[i]=='\t' || s1[i]=='\n')
                    continue ;
                else
                    s3[st++]=s1[i] ;
            s3[st]='\0' ;
            st=0 ;
            for(int i=0 ;i<strlen(s2) ;i++)
                if(s2[i]==' ' || s2[i]=='\t' || s2[i]=='\n')
                    continue ;
                else
                    s4[st++]=s2[i] ;
            s4[st]='\0' ;
            if(!strcmp(s3,s4))
                puts("Presentation Error") ;
            else
                puts("Wrong Answer") ;
        }
    }
    return 0 ;
}
View Code
#include <iostream>
#include <cstdio>
#include <cstring>
#include <map>
using namespace std ; 
char s1[100005],s2[100005] ;
int main()
{
    int t ;
    scanf("%d%*c",&t) ;
    while(t--)
    {
        scanf("%*s%*c") ;
        char ch ;
        int st=0 ;
        while(ch=getchar())
        {
            s1[st++]=ch ;
            if(ch=='\n' && st>3 && s1[st-4]=='E' && s1[st-3]=='N' && s1[st-2]=='D')
                break ;
        }
        s1[st-5]='\0' ;
        scanf("%*s%*c") ;
        st=0 ;
        while(ch=getchar())
        {
            s2[st++]=ch ;
            if(ch=='\n' && st>3 && s2[st-4]=='E' && s2[st-3]=='N' && s2[st-2]=='D')
                break ;
        }
        s2[st-5]='\0' ;
        if(!strcmp(s1,s2))
        {
            puts("Accepted") ;
        }
        else
        {
            map <char,int> M1,M2 ;
            for(int i=0 ;i<strlen(s1) ;i++)
                M1[s1[i]]++ ;
            for(int i=0 ;i<strlen(s2) ;i++)
                M2[s2[i]]++ ;
            map <char,int> :: iterator it ;
            int f=1 ;
            for(it=M1.begin() ;it!=M1.end() ;it++)
                if(M2[it->first]!=it->second && it->first!=' ' && it->first!='\t' && it->first!='\n')
                {
                    f=0 ;
                    break ;
                }
            if(f)
                puts("Presentation Error") ;
            else
                puts("Wrong Answer") ;
        }
    }
    return 0 ;
}
View Code