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:这里的数据都过了,还是WA,想不明白,有谁给一下测试数据 Posted by:BJ051155 at 2007-07-24 11:17:17 > #include <iostream> > #include <string.h> > using namespace std; > int cmp(const void* a,const void* b) > { > return *(char *)b-*(char *)a; > } > int main(int argc, char* argv[]) > { > bool sign=0; > char a[1005],div0[1005],div1[1005],div2[1005]; > cin>>a; > qsort(a,strlen(a),sizeof(a[0]),cmp); > int count0=0,count5=0,p=0,q=0,r=0; > for(int i=0;i<strlen(a);i++) > { > if(a[i]=='0') > count0++; > if(a[i]=='5') > count5++; > } > if(!count0&&!count5) > cout<<"impossible"<<endl; > else > { > for(i=0;i<strlen(a);i++) > { > if((a[i]-48)%3==0) > div0[r++]=a[i]; > if((a[i]-48)%3==1) > div1[p++]=a[i]; > if((a[i]-48)%3==2) > { > if(a[i]=='5'&&!sign&&!count0) > { > sign=1; > continue; > } > div2[q++]=a[i]; > } > } > if(count0) > { > if(p%3==1&&q%3==0) > p--; > if(p%3==2&&q%3==0) > q--; > if(p%3==2&&q%3==1) > p--; > if(p%3==0&&q%3==1) > q--; > if(p%3==1&&q%3==2) > q--; > if(p%3==0&&q%3==2) > p--; > if(((p==0&&q==0)||q<0||p<0)&&r==count0) > { > cout<<"0"<<endl; > return 0; > } > } > else > { > if(q==0) > { > if(p==0) > { > cout<<"impossible"<<endl; > return 0; > } > if(p%3==2) > p--; > else > { > if(p%3==0) > p-=2; > } > } > else > { > if(p==0) > { > if(q%3==1) > q-=2; > else > { > if(q%3==0) > q-=1; > } > if(q<0) > { > cout<<"impossible"<<endl; > return 0; > } > } > else > { > if(p%3==1&&(q+1)%3==0) > p--; > if(p%3==2&&(q+1)%3==0) > q--; > if(p%3==2&&(q+1)%3==1) > p--; > if(p%3==0&&(q+1)%3==1) > q--; > if(p%3==1&&(q+1)%3==2) > q--; > if(p%3==0&&(q+1)%3==2) > p--; > } > } > } > int p1=0,q1=0,r1=0; > while(p1<p&&q1<q&&r1<r) > { > if(div1[p1]>div2[q1]&&div1[p1]>div0[r1]) > cout<<div1[p1++]; > else > if(div2[q1]>div0[r1]) > cout<<div2[q1++]; > else > cout<<div0[r1++]; > } > if(p1==p) > { > while(q1<q&&r1<r) > { > if(div2[q1]>div0[r1]) > cout<<div2[q1++]; > else > cout<<div0[r1++]; > } > while(q1<q) > cout<<div2[q1++]; > while(r1<r) > cout<<div0[r1++]; > } > if(q1==q) > { > while(p1<p&&r1<r) > { > if(div1[p1]>div0[r1]) > cout<<div1[p1++]; > else > cout<<div0[r1++]; > } > while(p1<p) > cout<<div1[p1++]; > while(r1<r) > cout<<div0[r1++]; > } > if(r1==r) > { > while(p1<p&&q1<q) > { > if(div1[p1]>div2[q1]) > cout<<div1[p1++]; > else > cout<<div2[q1++]; > } > while(p1<p) > cout<<div1[p1++]; > while(q1<q) > cout<<div2[q1++]; > } > if(sign) > cout<<"5"; > cout<<endl; > > } > return 0; > } > Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator