Submission #287990

#TimeUsernameProblemLanguageResultExecution timeMemory
287990oolimryBigger segments (IZhO19_segments)C++14
100 / 100
71 ms14856 KiB
#include <bits/stdc++.h> #define all(x) (x).begin(), (x).end() #define sz(x) (int) (x).size() using namespace std; typedef long long lint; typedef pair<int,lint> ii; typedef pair<lint,ii> iii; int arr[500006]; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; for(int i = 1;i <= n;i++) cin >> arr[i]; lint prefix = 0; deque<iii> D; D.push_back(iii(0,ii(0,0))); for(int i = 1;i <= n;i++){ prefix += arr[i]; while(sz(D) > 1){ if(D[1].first <= prefix) D.pop_front(); else break; } ii res = D[0].second; int most = res.first + 1; lint take = prefix - res.second; if(i == n) cout << most; while(sz(D) > 0){ iii T = D.back(); if(T.first >= take + prefix) D.pop_back(); else break; } D.push_back(iii(take+prefix, ii(most, prefix))); } }
#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...