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 |
help!!!#include<iostream.h> #include<fstream.h> void main() { fstream fin("in.txt",ios::in||ios::out); int i,j=0,can=0,k; long half,temp; long marbles[8]; int r[8]; int t; marbles[0]=0; while(1) { ////input fin>>marbles[1]>>marbles[2]>>marbles[3]>>marbles[4]>>marbles[5]>>marbles[6]; // cin>>marbles[1]>>marbles[2]>>marbles[3]>>marbles[4]>>marbles[5]>>marbles[6]; ////judge whether go on by input if(marbles[1]==0 && marbles[2]==0 && marbles[3]==0 && marbles[4]==0 && marbles[5]==0 && marbles[6]==0) break; half=0; can=0; j++; //time of case for(i=1;i<=6;i++) { marbles[i]=marbles[i]%2; marbles[i]*=i;//store the resting r[7-i]=marbles[i]; half+=marbles[i]; } if((half%2)==0)//half*2==0 { half/=2;//half the rest of dividing for(i=1;i<=6;i++)//whether can find value "half" by added the value of r[] { if(r[i]==0) continue; t=1; marbles[t]=i;//record the path temp=half-r[i]; k=i; if(temp>=0) { if(temp==0)//end { can=1; break; } for(k+=1;k<=6;k++) if(r[k]!=0) break; if(k<6) k++;//next item else break; while(1) { if(k<=6) { temp-=r[k]; if(temp>=0) { if(temp==0) { can=1; break;//? } t++; marbles[t]=k; } else temp+=r[k]; k++; } else//k>6 { // k=1+marbles[t]; k=marbles[t]; //the last has recorded temp+=r[k]; //back one step t--; k++; // k=marbles[t]+1; if(marbles[t]==i) break; }//end else }//end while } }//end for }//end (half%2)==0 if(can==1) { if(j!=1) cout<<endl; cout<<"Collection #"<<j<<":"<<endl; cout<<"Can be divided."<<endl; } else { if(j!=1) cout<<endl; cout<<"Collection #"<<j<<":"<<endl; cout<<"Can't be divided."<<endl; } /**/ } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator