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:请犇人指点啊,我已经被wa无数次了(自知编得不好,大家不要笑话)In Reply To:请犇 Posted by:salukaya at 2006-03-13 23:31:52 #include<iostream.h> #include<string.h> void main() { char* t[40000]; int* mark; for(int i=0;;i++) { char temp[81]; cin.getline(temp,80,'\n'); if(!strcmp(temp,"")) break; t[i]=new char[strlen(temp)]; strcpy(t[i],temp); }//right mark=new int[i]; int l=i,m=0,count=0,p=0,j=0; for(i=0;i<l;i++) { for(int e=0;t[i][e]==' '&&e<strlen(t[i]);e++); if(t[i][e]=='\0'){ mark[i]=0; continue; } else if((i==0&&t[i][0]=='[')||(mark[i-1]==0&&t[i][0]=='[')){ count++; for(;;i++){ for(int e=0;t[i][e]==' '&&e<strlen(t[i]);e++); if(t[i][e]=='\0') break; mark[i]=2; } i--; continue; } else mark[i]=1; } //right int* num=new int[count]; for(i=0;i<l;i++){ if(mark[i]==2) continue; if(mark[i]==1){ for(j=0;j<strlen(t[i]);j++){ if(t[i][j]!='[') cout<<t[i][j]; if(t[i][j]=='['){ num[m]=0; int sort=0; cout<<"["; for(j=j+1;t[i][j]!=']';j++){ num[m]=num[m]*10+(t[i][j]-'0');} for(int a=0;a<m;a++){ if(num[m]==num[a]){ sort=1; cout<<a+1<<"]";} if(sort) m--; } if(!sort) cout<<m+1<<"]"; m++; } } cout<<endl; continue; } if(i>0&&mark[i-1]==1&&mark[i]==0) { cout<<endl; for(;mark[i]==0&&i<l;i++); i--; } } int an=0; int q=0,k=0; for(k=0;k<count;k++){ for(i=0;i<l;i++){ if(mark[i]==2&&t[i][0]=='['){ an=0; for(j=1;t[i][j]!=']';j++) an=an*10+(t[i][j]-'0'); if(an!=num[k]) continue; if(an==num[k]){ cout<<"["<<k+1; for(;j<strlen(t[i]);j++) cout<<t[i][j]; cout<<endl; i++; for(;mark[i]==2;i++) cout<<t[i]<<endl; i--; } cout<<endl; } } } delete[] mark; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator