Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

为什么总是wa啊?能测试的数据都过了啊?????请各位大虾指教,用c++做的

Posted by lovexue199075 at 2010-04-20 23:29:57 on Problem 1002
#include <iostream>
#include <algorithm>
using namespace std;
int comp(const void *p1,const void *p2)
{
    return  *((int*)p2)>*((int*)p1)?-1:1;
}

int main()
{
    int M=50;
    int size=7;
    int i,j,k,l,w,si,d;
    char p[200],b[200][10],a[200][10];
    bool s[200];
    for(i=0;i<size;i++)
    s[i]=0;
    cin>>d;
    for(j=0;j<d;j++)
    {
    w=0;
    for(i=0;i<M;i++)
    p[i]=0;
    cin >> p;
    si = strlen(p);
    for (i=0; i<si; i++)
    {
        if(p[i]!='-')
        {b[j][w]=p[i];w++;}
    }
    for(i=0;i<size;i++)
    {
        switch(b[j][i])
        {
            case 'A':case 'B':case 'C':b[j][i]=2+'0';break;
            case 'D':case 'E':case 'F':b[j][i]=3+'0';break;
            case 'G':case 'H':case 'I':b[j][i]=4+'0';break;
            case 'J':case 'K':case 'L':b[j][i]=5+'0';break;
            case 'M':case 'N':case 'O':b[j][i]=6+'0';break;
            case 'P':case 'R':case 'S':b[j][i]=7+'0';break;
            case 'T':case 'U':case 'V':b[j][i]=8+'0';break;
            case 'W':case 'X':case 'Y':b[j][i]=9+'0';break;
            default:break;
        }
    }
    }
    if(d!=1)
    {
    int z=0;
    for(j=0;j<d-1;j++)
    {
        for(k=j+1;k<d;k++)
        {
            int count=0;
             if(!s[k])
            {
            for(i=0;i<size;i++)
            {
            if(b[j][i]==b[k][i])
                count++;
            }
            if(count==size)
            {
            if(!s[j])
            {
            z++;
            for(l=0;l<size;l++)
            a[z][l]=b[j][l];
            }
            s[k]=1;s[j]=1;
            }
            }
        }
    }
    if(z!=0)
    {
    int c[200],f[200];
    for(i=0;i<z;i++)
    {c[i]=0;f[i]=0;}
    for(i=1;i<=z;i++)
    {
        for(j=0;j<d;j++)
        {
            int st=0;
            for(k=0;k<size;k++)
            {
                if(b[j][k]==a[i][k])
                st++;
            }
            if(st==size)
            c[i-1]++;
        }
    }
    for(i=1;i<=z;i++)
    f[i-1]=(a[i][0]-'0')*1000000+(a[i][1]-'0')*100000+(a[i][2]-'0')*10000+(a[i][3]-'0')*1000+(a[i][4]-'0')*100+(a[i][5]-'0')*10+a[i][6]-'0';
    qsort(f,z,sizeof(int),comp);
    for(i=0;i<size;i++)
    s[i]=0;
    for(i=0;i<z;i++)
    {
        for(k=1;k<=z;k++)
        {
            if(!s[k])
            {
            if((a[k][0]-'0')*1000000+(a[k][1]-'0')*100000+(a[k][2]-'0')*10000+(a[k][3]-'0')*1000+(a[k][4]-'0')*100+(a[k][5]-'0')*10+a[k][6]-'0'==f[i])
            {
                for(j=0;j<3;j++)
                cout<<a[k][j];
                cout<<"-";
                for(j=3;j<size;j++)
                cout<<a[k][j];
                cout<<" "<<c[k-1];
                cout<<endl;
                s[k]=1;
            }
            }
        }
    }
    }
    else cout<<"No duplicates."<<endl;
    }
    else  cout<<"No duplicates."<<endl;
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator