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 |
求教大牛啊!怎么老是RA啊,但是把数组开大一位又说我RE!不知道哪有问题啊,我是用队列做的!附加代码 #include<iostream> using namespace std; #define N 100000000 int main() { int l,m,i,front1,rear1,front2,rear2; int cases,accouts,sum1,sum2; int lque[N],rque[N]; int num; char location[10]; scanf("%d",&cases); while(cases>0) { accouts=0; front1=rear1=front2=rear2=0; scanf("%d %d",&l,&m); l=l*100; for(i=0;i<m;i++) { scanf("%d %s",&num,location); if(strcmp(location,"left")==0) { lque[rear1]=num; rear1++; } else if(strcmp(location,"right")==0) { rque[rear2]=num; rear2++; } } if(rear1==0 && rear2!=0) { while(front2!=rear2) { sum2=0; accouts++; while(front2!=rear2) { sum2+=rque[front2]; front2++; if(sum2>l) { accouts++; front2--; break; } else if(sum2==l) { accouts++; break; } else if(sum2<l && front2==rear2) accouts++; } } } else if(rear2==0 && rear1!=0) { while(front1!=rear1) { sum1=0; while(front1!=rear1) { sum1+=lque[front1]; front1++; if(sum1>l) { accouts++; front1--; break; } else if(sum1==l) { accouts++; break; } else if(sum1<l && front1==rear1) accouts++; } accouts++; } accouts--; } else { while(front1!=rear1 || front2!=rear2) { sum1=sum2=0; while(front1!=rear1) { sum1+=lque[front1]; front1++; if(sum1>l) { accouts++; front1--; break; } else if(sum1==l) { accouts++; break; } else if(sum1<l && front1==rear1) accouts++; } while(front2!=rear2) { sum2+=rque[front2]; front2++; if(sum2>l) { accouts++; front2--; break; } else if(sum2==l) { accouts++; break; } else if(sum2<l && front2==rear2) accouts++; } } } cout<<accouts<<endl; cases--; } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator