hdu 4221 greed 注意范围 工作延期,使整个工作时间罚时最少的单个罚时最长的值
#include <stdio.h> #include <stdlib.h> struct node { int c; int d; }nodes[100010]; int cmp(const void * a,const void * b) { return (*(node *)a).d-(*(node *)b).d; } int main() { int t,n,i,k=1; __int64 max,sum; scanf("%d",&t); while(t--) { max=0; sum=0; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&nodes[i].c,&nodes[i].d); qsort(nodes,n,sizeof(nodes[0]),cmp); for(i=0;i<n;i++) { sum+=nodes[i].c; if(sum>nodes[i].d&&max<sum-nodes[i].d) max=sum-nodes[i].d; } printf("Case %d: %I64d\n",k++,max); } return 0; }