| 比赛 |
ry分享赛 |
评测结果 |
AAAAAAAAAA |
| 题目名称 |
服务 |
最终得分 |
100 |
| 用户昵称 |
xuyuqing |
运行时间 |
0.143 s |
| 代码语言 |
C++ |
内存使用 |
4.04 MiB |
| 提交时间 |
2026-03-19 20:08:13 |
显示代码纯文本
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <utility>
using namespace std;
const int N = 252525;
int n;
pair<long long, long long> nums[N];
long long a[N];
long long b[N];
bool cmp (pair<long long, long long> one, pair<long long, long long> two) {
if (min (one.first, two.second) == min (one.second, two.first)) {
return one.first < two.first;
}
return min (one.first, two.second) < min (one.second, two.first);
}
int main () {
freopen ("service.in", "r", stdin);
freopen ("service.out", "w", stdout);
// Yeah, what to eat!
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> nums[i].first >> nums[i].second;
}
sort (nums + 1, nums + 1 + n, cmp);
for (int i = 1; i <= n; i++) {
a[i] = a[i - 1] + nums[i].first;
b[i] = max (a[i], b[i - 1]) + nums[i].second;
}
cout << b[n] << endl;
return 0;
}