Submission #332116

#TimeUsernameProblemLanguageResultExecution timeMemory
332116nvmdavaBigger segments (IZhO19_segments)C++17
13 / 100
1 ms512 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const int N = 500'005; const ll MOD = 1'000'000'007; const int INF = 0x3f3f3f3f; ll sum[N]; int ans[N]; ll p[N]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin>>n; for(int i = 1; i <= n; ++i){ cin>>p[i]; p[i] += p[i - 1]; sum[i] = 1; } int t = 0, nt = 1; for(int i = 1; i <= n; ++i){ if(p[i] - p[nt] >= sum[nt]) t = nt; while(p[i] - p[t + 1] >= sum[t + 1]) ++t; sum[i] = p[i] - p[t]; ans[i] = ans[t] + 1; if(ans[i] > ans[i - 1]) nt = 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...
#Verdict Execution timeMemoryGrader output
Fetching results...