Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:超时啦 帮我下In Reply To:超时啦 帮我下 Posted by:wenzheng137 at 2008-08-24 18:03:04 > #include<stdio.h> > #include<ctype.h> > #include<list> > #include<queue> > using namespace std; > > > typedef struct phone{ > int fir; > int sec; > int sum; > struct phone *next; > }PNode,*Plist; > > > int main(){ > int num,n=0,flag=0; > char ch; > Plist pl,head=NULL,p,q; > > scanf("%d",&num); > getchar(); > while((ch=getchar())!=EOF&&num>0){ > switch (ch){ > case '0': > n=n*10+0; > break; > case '1': > n=n*10+1; > break; > case 'A':case 'B':case 'C':case '2': > n=n*10+2; > break; > case 'D':case 'E':case 'F':case '3': > n=n*10+3; > break; > case 'G':case 'H':case 'I':case '4': > n=n*10+4; > break; > case 'J':case 'K':case 'L':case '5': > n=n*10+5; > break; > case 'M':case 'N':case 'O':case '6': > n=n*10+6; > break; > case 'P':case 'R':case 'S':case '7': > n=n*10+7; > break; > case 'T':case 'U':case 'V':case '8': > n=n*10+8; > break; > case 'W':case 'X':case 'Y':case '9': > n=n*10+9; > break; > default: > break; > }//switch > if(n>=100&&flag==0){ > pl = new PNode; > pl->next=NULL; > pl->sec=0; > pl->sum=1; > flag = 1; > pl->fir = n; > n = 0; > } > if(n>=1000&&flag==1){ > num--; > pl->sec = n; > flag = 0; > n = 0; > if(head==NULL){ > head=pl; > p=pl; > continue; > } > if(head!=NULL){ > for(q=head;q->next!=NULL;q=q->next){ > if(q->fir==pl->fir&&q->sec==pl->sec){ > q->sum++; > break; > } > if(pl->fir<head->fir||(pl->fir==head->fir&&pl->sec<head->sec)){ > pl->next=head; > head=pl; > break; > } > if(pl->fir<q->next->fir||(pl->fir==q->next->fir&&pl->sec<q->next->sec)){ > pl->next=q->next; > q->next=pl; > break; > } > } > if(q->next==NULL&&(q->fir==pl->fir&&q->sec==pl->sec)){ > q->sum++; > } > if(q->next==NULL&&((pl->fir==q->fir&&pl->sec>q->sec)||pl->fir>q->fir)){ > q->next=pl; > } > } > }//IF > }//while > q=head; > flag = 0; > while(q!=NULL){ > if(q->sum!=1){ > printf("%d-%d %d\n",q->fir,q->sec,q->sum); > flag=1; > } > q=q->next; > } > if(flag==0) > printf("No duplicates.\n"); > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator