Submission #1255005

#TimeUsernameProblemLanguageResultExecution timeMemory
1255005magic_tripPotatoes and fertilizers (LMIO19_bulves)C++20
0 / 100
1 ms580 KiB
#include <bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #pragma optimize("unroll-loops") #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define all(x) x.begin(), x.end() #define rll(x) x.rbegin(), x.rend() #define COMP(x) x.erase(unique(all(x)), x.end()) #define MOD 1000000007 #define MOD2 998244353 #define sz(x) (ll)x.size() typedef __int128_t lll; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll,ll> pll; typedef pair<ll, pll> PP; const ll Lnf = 2e18; ll n; priority_queue<ll> pq; ll A[505050], B[505050], D[505050]; int main(){ fast; cin>>n; for(int i = 1 ; i <= n ; i++)cin>>A[i]>>B[i], D[i] = A[i]-B[i]+D[i-1]; ll ans = 0; pq.push(0); pq.push(0); for(int i = 1 ; i <= n ; i++){ pq.push(D[i]); if(pq.top() > D[i]){ ans += pq.top() - D[i]; pq.pop(); pq.push(D[i]); } } if(pq.top() <= D[n])return !(cout<<ans); for(int i = 1 ;; i++){ if(pq.top() == D[n])return !(cout<<ans); ll x=pq.top(); pq.pop(); ans += i*(x-pq.top()); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...