Submission #1019942

#TimeUsernameProblemLanguageResultExecution timeMemory
1019942eldorbek_008Art Exhibition (JOI18_art)C++17
100 / 100
450 ms48564 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

int32_t main() {
	int n; cin >> n;
	vector<pair<int, int>> a(n);
	for (int i = 0; i < n; i++) {
		cin >> a[i].first >> a[i].second;
	}
	sort(a.begin(), a.end());
	vector<int> p(n, a[0].second);
	for (int i = 1; i < n; i++) {
		p[i] = p[i - 1] + a[i].second;
	}
	int cur;
	int ans = 0;
	multiset<int> m;
	for (int i = n - 1; i >= 0; i--) {
		m.insert(p[i] - a[i].first);
		cur = *prev(m.end()) - (i > 0 ? p[i - 1] : 0);
		cur += a[i].first;
		ans = max(ans, cur);
	}
	cout << ans << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...