# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1228739 | khoingu | Art Exhibition (JOI18_art) | C++20 | 0 ms | 320 KiB |
#include <bits/stdc++.h>
#define ll long long
#define int long long
#define fi(i,a,b) for(int i = a; i <= b; i ++)
#define fi first
#define se second
using namespace std;
const long long maxN = 5e5 + 5, INF = 1e17;
int n, p[maxN];
pair<int, int> x[maxN];
signed main() {
if (fopen("task.inp", "r")) {
freopen("task.inp", "r", stdin);
freopen("task.out", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for(int i = 0; i < n; i ++) cin >> x[i].fi >> x[i].se;
sort(x, x + n);
p[0] = x[0].se;
for(int i = 1; i < n; i ++) p[i] = p[i - 1] + x[i].se;
// (p[r] - p[l - 1]) - x[r].fi + x[l].fi
// (p[r] - x[r].fi) + (x[l].fi - p[l - 1])
int ma = -INF, res = -INF;
for(int i = 2; i < n; i ++) {
ma = max(ma, x[i - 1].fi - p[i - 2]);
res = max(res, ma + p[i] - x[i].fi);
}
res = max(res, p[0] - x[0].fi);
if (n >= 2) res = max(res, p[1] - x[1].fi + x[0].fi);
cout << res;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |