贪心,布置作业
内部赛 题目好像没有公开
很快就到考试周了!但是可怜的平时过于认真训练,结果欠下了一大堆的作业,平时分岌岌可危!
现在从时刻开始做作业,一共有项作业,第项作业会在时刻布置下来(即当时可以做这一项作业),需要的时间完成(假设当时刻选择做这一项作业,那么当时不能选择做其他作业)。
决定尽快解决掉所有作业,因此在完成所有作业之前他不会去做其他事情,他想知道最早在什么时刻能完成所有作业。
Input
第一行是一个正整数,表示测试数据的组数,
对于每组测试数据,
第一行是一个正整数,表示作业的数量,
接下来行,
每行包含两个整数,表示作业布置的时刻和完成作业所需时间。
Output
对于每组测试数据,输出一个整数,表示最早完成所有作业的时刻。
#include <stdio.h> #include <algorithm> using namespace std; struct action{ int s;///布置的时间 int f;///需要的时间 }a[1005]; bool cmp(const action &a,const action &b) { if(a.s<=b.s) return true; else return false; } int main() { int t; scanf("%d",&t); while(t--) { int time=0;///当前时间 int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&a[i].s,&a[i].f); sort(a,a+n,cmp); for(int i=0;i<n;i++) { if(time<=a[i].s) { time=a[i].s+a[i].f; } else time=time+a[i].f; } printf("%d\n",time); } return 0; }