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 |
请前辈指点!!In Reply To:Re:终于AC,眼泪都哭干了。RE/TLE的同志们注意了: Posted by:marbles at 2007-08-08 00:59:03 我没搞懂我的代码是怎样RE,请高手们指点哈—— 代码: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; struct node { int w; int d; }; bool cmp(node a,node b) { return a.w*a.d<b.w*b.d; }; int main() { int n,w,d,p,s,i,w1,w2,d1,d2,m,j; node cake[120]; scanf("%d%d%d",&n,&w,&d); while(n||w||d) { memset(cake,0,sizeof(cake)); cake[1].w=w;cake[1].d=d; for(i=1;i<=n;i++) { scanf("%d%d",&p,&s); m=s%((cake[p].d+cake[p].w)*2); if(m<cake[p].w) { w1=m;w2=cake[p].w-w1; swap(w1,w2); d2=d1=cake[p].d; } else if(m<cake[p].w+cake[p].d) { d1=m-cake[p].w; d2=cake[p].d-d1; swap(d1,d2); w2=w1=cake[p].w; } else if(m<cake[p].w*2+cake[p].d) { w1=cake[p].w*2+cake[p].d-m; w2=cake[p].w-w1; swap(w1,w2); d1=d2=cake[p].d; } else { d1=2*(cake[p].w+cake[p].d)-m; d2=cake[p].d-d1; swap(d1,d2); w1=w2=cake[p].w; } for(j=p;j<i;j++) { cake[j].w=cake[j+1].w; cake[j].d=cake[j+1].d; } cake[i].w=w1; cake[i].d=d1; cake[i+1].w=w2; cake[i+1].d=d2; } sort(cake+1,cake+n+2,cmp); for(i=1;i<=n+1;i++) printf("%d ",cake[i].w*cake[i].d); printf("\n"); scanf("%d%d%d",&n,&w,&d); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator