# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1267232 | codefox | Art Exhibition (JOI18_art) | C++20 | 699 ms | 327680 KiB |
#include<bits/stdc++.h>
using namespace std;
#ifndef ONLINE_JUDGE
#define input freopen("../input.txt", "r", stdin)
#define output freopen("../output.txt", "w", stdout)
#else
#define input if(0) cout << 0
#define output if(0) cout << 0
#endif
#define int long long
#define pii pair<int, int>
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
input;
output;
int n;
cin >> n;
n++;
vector<int> pref(n, 0);
multiset<int> pp;
vector<pii> ab(n);
vector<int> a(n);
vector<int> b(n);
for (int i = 1; i < n; i++)
{
cin >> ab[i].first >> ab[i].second;
}
sort(ab.begin(), ab.end());
for (int i = 1; i < n; i++)
{
a[i] = ab[i].first;
b[i] = ab[i].second;
}
for (int i = 1; i < n; i++)
{
pref[i] = pref[i-1]+b[i];
pp.insert(pref[i]-a[i]);
}
pp.insert(pref[n-1]-a[n-1]);
int ans = 0;
for (int i= 1; i < n; i++)
{
int sol = -pref[i-1]+a[i];
pp.erase(pp.find(pref[i]-a[i]));
sol+=*(--pp.end());
ans = max(ans, sol);
}
cout << ans << "\n";
return 0;
}
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... |