Submission #1332025

#TimeUsernameProblemLanguageResultExecution timeMemory
1332025ChinguunArt Exhibition (JOI18_art)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define ff first
#define ss second
#define pb push_back
#define ppb pop_back
#define meta int tm = (tl + tr) / 2, x = i * 2 + 1, y = x + 1

const int N = 2e5 + 7;
const int TN = 4 * N;
const int oo = 1e18;
const int mod = 1e9 + 7;

typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<pii> vii;

int n, diff, mx = -oo, ind1, ind2, ans;
pii a[N];

signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	cin >> n;
	a[0] = a[1];
	a[n + 1] = a[n];
	for (int i = 1; i <= n; i++) {
		cin >> a[i].ff >> a[i].ss;
	}
	sort (a + 1, a + n + 1);
	for (int i = 1; i <= n; i++) {
		diff = diff + a[i].ss - (a[i].ff - a[i - 1].ff);
		if (diff > mx) {
			mx = diff;
			ind1 = i;
		}
	}
	mx = -oo;
	diff = 0;
	for (int i = ind1; i >= 1; i--) {
		diff = diff + a[i].ss - (a[i + 1].ff - a[i].ff);
		if (diff > mx) {
			mx = diff;
			ind2 = i;
		}
	}
	for (int i = ind2; i <= ind1; i++) {
		ans += a[i].ss;
	} ans -= a[ind1].ff - a[ind2].ff;
	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...