感觉没什么问题,但是只有18%的分数 代码是凭记忆复述出来的,大差不差,但是有可能有点问题
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
const int INF = (int) 1e9;
int n;
struct node {
int x, y;
} a[N];
bool cmp(node a, node b) {
if (a.x != b.x) return a.x > b.x;
return a.y < b.y;
}
bool check(int x) {
int now = x;
for (int i = 1; i <= n; i++) {
if (now < a[i].x) return false;
now -= a[i].y;
}
return true;
}
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d%d", &a[i].x, &a[i].y);
}
int l = 1, r = INF, best = -1;
while(l <= r) {
int mid = (l + r) / 2;
if (check(mid)) r = mid - 1, best = mid;
else l = mid + 1;
}
printf("%d\n", best);
return 0;
}