제출 #1226345

#제출 시각아이디문제언어결과실행 시간메모리
1226345wedonttalkanymoreArt Exhibition (JOI18_art)C++20
100 / 100
114 ms19792 KiB
#include <bits/stdc++.h>

#define pii pair <long long, long long>
#define fi first
#define se second

using namespace std;
using ll = long long;

const ll N = 500005, inf = 1e16;

int n;
pii a[N];
ll pfs[N], pre[N], suf[N];
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i].fi >> a[i].se;
	}
	sort(a + 1, a + n + 1); // sort theo size
	for (int i = 1; i <= n; i++) {
		pfs[i] = pfs[i - 1] + a[i].se;
		pre[i] = pfs[i] - a[i].fi; // S = [1, i] va max = i
//		cout << pfs[i] << ' ' << pre[i] << '\n';
	}
	suf[n + 1] = -inf;
	for (int i = n; i >= 1; i--) {
//		cout << suf[i + 1] << '\n';
		suf[i] = max(suf[i + 1], pre[i]);
//		cout << suf[i] << ' ';
	}
	ll ans = -inf;
	for (int i = 1; i <= n; i++) { // co dinh con min => max(pre)
		ans = max(ans, suf[i] + a[i].fi - pfs[i - 1]);
	}
	cout << ans;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...