Submission #420054

#TimeUsernameProblemLanguageResultExecution timeMemory
420054TricksterArt Exhibition (JOI18_art)C++14
100 / 100
721 ms37468 KiB
//Suleyman Atayew #include <algorithm> #include <iostream> #include <string.h> #include <stdio.h> #include <vector> #include <bitset> #include <queue> #include <cmath> #include <map> #include <set> #define N 500010 #define ff first #define ss second #define pb push_back #define ll long long #define mod 1000000007 #define pii pair <ll, ll> #define sz(a) (ll)(a.size()) ll bigmod(ll a, ll b) { if(b==0)return 1; ll ret = bigmod(a, b/2); return ret * ret % mod * (b%2 ? a : 1) % mod; } using namespace std; ll n; pii p[N]; ll T[N*4], L[N*4]; void shift(ll node, ll to) { T[to] += L[node]; L[to] += L[node]; } void upd(ll a, ll b, ll x, ll l, ll r, ll node) { if(l > b || r < a) return; if(l >= a && r <= b) { T[node] += x; L[node] += x; return; } shift(node, node*2); shift(node, node*2+1); L[node] = 0; upd(a, b, x, l, (l+r)/2, node*2); upd(a, b, x, (l+r)/2+1, r, node*2+1); T[node] = max(T[node*2], T[node*2+1]); } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for(ll i = 1; i <= n; i++) cin >> p[i].ff >> p[i].ss; sort(p+1, p+n+1); ll ans = 0; for(ll i = 1; i <= n; i++) { upd(i, i, p[i].ss, 1, n, 1); upd(1, i-1, p[i-1].ff - p[i].ff + p[i].ss, 1, n, 1); ll cur = T[1]; ans = max(ans, cur); upd(i, i, cur-p[i].ss, 1, n, 1); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...