最重要的就是要搞清楚时间的次序,
表现为ans=max(ans,s+a[i].j),及时更新最后时间
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <cstring>
using namespace std;
int n;
#define maxn 10005
struct node
{
int b;
int j;
}a[maxn];
bool cmp(node a, node b)
{
return a.j > b.j;
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> a[i].b >> a[i].j;
}
sort(a, a + n, cmp);
int ans = 0;
int s = 0;
for (int i = 0; i < n; i++)
{
s += a[i].b;//当前任务的开始执行时间
ans = max(ans, s + a[i].j);
}
cout << ans << endl;
system("pause");
return 0;
}