贪心写,但是排序的时候要考虑到如果a相同还要对b排序
代码如下:
#include <bits/stdc++.h>
#define MAXN 6000
#define LL long long
using namespace std;
struct P {
int a, b;
}c[MAXN];
bool cmp(P t1, P t2) {
if(t1.a < t2.a)
return true;
else if(t1.a == t2.a)
return t1.b<t2.b;
return false;
}
int main(void) {
int n;
LL ans, tmp;
scanf("%d", &n);
for(int i=0; i<n; ++i)
scanf("%d%d", &c[i].a, &c[i].b);
sort(c, c+n, cmp);
ans = 0;
for(int i=0; i<n; ++i) {
tmp = min(c[i].a, c[i].b);
//printf("%d\n", ans);
if(ans <= tmp)
ans = tmp;
else ans = c[i].a-tmp+c[i].b;
}
cout << ans << endl;
return 0;
}