Submission #995944

#TimeUsernameProblemLanguageResultExecution timeMemory
995944yanbArt Exhibition (JOI18_art)C++14
100 / 100
130 ms31596 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<long long, long long> signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<pii> ab(n); for (int i = 0; i < n; i++) cin >> ab[i].first >> ab[i].second; sort(ab.begin(), ab.end()); vector<int> a(n), b(n); for (int i = 0; i < n; i++) { a[i] = ab[i].first; b[i] = ab[i].second; } vector<int> profit(n); for (int i = 1; i < n; i++) { profit[i] = a[i - 1] - a[i] + b[i]; } vector<int> prefit(n + 1); for (int i = 0; i < n; i++) prefit[i + 1] = prefit[i] + profit[i]; vector<int> smxp(n + 1); smxp[n] = prefit[n]; for (int i = n - 1; i >= 0; i--) smxp[i] = max(smxp[i + 1], prefit[i]); vector<int> rmxp(n + 1); for (int i = 0; i < n + 1; i++) rmxp[i] = smxp[i] - prefit[i]; /*for (int i = 0; i < n; i++) cout << profit[i] << " "; cout << "\n"; for (int i = 0; i < n + 1; i++) cout << prefit[i] << " "; cout << "\n"; for (int i = 0; i < n + 1; i++) cout << smxp[i] << " "; cout << "\n"; for (int i = 0; i < n + 1; i++) cout << rmxp[i] << " "; cout << "\n";*/ int ans = 0; for (int i = 0; i < n; i++) ans = max(ans, rmxp[i + 1] + b[i]); 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...