比赛 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;
}