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 |
WA 了,好心人给帮测试一下,发现错误后请致函Happy_Baby_Me@163.com,谢谢#include <iostream> #include <stdio.h> #include <algorithm> using namespace std; struct xxx { int a,b; }task[10005],s1[10005],s2[10005]; bool cmp1(struct xxx u,struct xxx v) { if(u.a<v.a) return true; return false; } bool cmp2(struct xxx u,struct xxx v) { if(u.b>v.b) return true; return false; } int main() { int n,i,j,k; while(scanf("%d",&n)&&n) { j=0,k=0; for(i=0;i<n;i++) { scanf("%d%d",&task[i].a,&task[i].b); if(task[i].a<task[i].b) { s1[j].a=task[i].a; s1[j++].b=task[i].b; } else { s2[k].a=task[i].a; s2[k++].b=task[i].b; } } sort(s1,s1+j,cmp1); sort(s2,s2+k,cmp2); int restime=0,sum=0; for(i=0;i<j;i++) { if(i==0) { sum+=s1[i].a+s1[i].b; restime=s1[i].b; continue; } if(s1[i].a>=restime) { sum+=(s1[i].a-restime)+s1[i].b; restime=s1[i].b; } else if(s1[i].a<restime) { sum+=s1[i].b; restime=restime+s1[i].a+s1[i].b; } } for(i=0;i<k;i++) { if(s2[i].a>=restime) { sum+=(s2[i].a-restime)+s2[i].b; restime=s2[i].b; } else { restime=restime-s2[i].a+s2[i].b; sum+=s2[i].b; } } printf("%d\n",sum); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator