题意:有n个人需要你分配任务,交代任务需要bi时间,执行任务需要ji时间,要求最早完成任务,请输出最后完成对的工作的时间。
类型:贪心(先排序再处理)
代码:
类型:贪心(先排序再处理)
代码:
#include
#include
#include
#include
using namespace std;
int max(int a, int b){
return a>b?a:b;
}
struct job{
int j, b;
bool operator < (const job& x) const{
return j > x.j;
}
};
int main(){
// freopen("in.txt", "r", stdin);
int n, b, j;
int kase = 1;
while(scanf("%d", &n)!=EOF && n){
vectorvj;
int i;
for(i=0; i
cin >> b >> j;
job tj;
tj.b = b;
tj.j = j;
vj.push_back(tj);
}
sort(vj.begin(), vj.end());
int s = 0;
int ans = 0;
for(i=0; i
s += vj[i].b;
ans = max(ans, s+vj[i].j);
}
printf("Case %d: %d\n", kase++, ans);
}
}