Submission #237790

#TimeUsernameProblemLanguageResultExecution timeMemory
237790ant101Art Exhibition (JOI18_art)C++14
100 / 100
230 ms24824 KiB
#include <iostream> #include <algorithm> #include <cstring> #include <iomanip> #include <fstream> #include <cmath> #include <vector> #include <set> #include <unordered_set> #include <unordered_map> #include <map> #include <stack> #include <queue> #include <assert.h> #include <limits> #include <cstdio> using namespace std; //#define RDEBUG 1 #ifdef RDEBUG #define D(x) x #else #define D(x) #endif #define inf 0x7fffffff #define MOD 1000000007 typedef long long ll; ll add(ll a, ll b) { a += b; if(a >= MOD) { a -= MOD; } return a; } ll sub(ll a, ll b) { a -= b; if(a < 0) { a += MOD; } return a; } ll mul(ll a, ll b) { return (a * b)%MOD; } void add_self(ll& a, ll b) { a = add(a, b); } void sub_self(ll& a, ll b) { a = sub(a, b); } void mul_self(ll& a, ll b) { a = mul(a, b); } const ll MAXN = 500010; pair<ll, ll> art[MAXN]; ll N; ll pref[MAXN]; int main() { ios_base :: sync_with_stdio(false); cin.tie(nullptr); cin >> N; for (ll i = 1; i<=N; i++) { cin >> art[i].first >> art[i].second; } sort(art+1, art+N+1); for (ll i = 1; i<=N; i++) { pref[i] = pref[i-1]+art[i].second; } ll ans = 0; ll bestpainting = -1e16; for (ll i = N; i>=1; i--) { bestpainting = max(bestpainting, pref[i]-art[i].first); ans = max(ans, bestpainting+art[i].first-pref[i-1]); } cout << ans << "\n"; 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...