Submission #380547

#TimeUsernameProblemLanguageResultExecution timeMemory
380547YJUBigger segments (IZhO19_segments)C++14
100 / 100
106 ms17024 KiB
#include<bits/stdc++.h> #pragma GCC optimize("unroll-loops,no-stack-protector,Ofast") using namespace std; typedef long long ll; typedef pair<ll,ll> pll; typedef long double ld; const ll N=5e5+5; const ll MOD=1e9+7; const ll INF=(1LL<<60); #define REP(i,n) for(ll i=0;i<n;i++) #define REP1(i,n) for(ll i=1;i<=n;i++) #define pb push_back #define mp make_pair #define X first #define Y second #define lwb lower_bound #define SZ(_a) (ll)_a.size() ll n,u[N],dp[N],pos[N]; int main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin>>n; REP1(i,n)cin>>u[i],u[i]+=u[i-1]; REP1(i,n){ pos[i]=max(pos[i],pos[i-1]); dp[i]=dp[pos[i]]+1; ll idx=lwb(u+1,u+n+1,2*u[i]-u[pos[i]])-u; pos[idx]=max(pos[idx],i); } cout<<dp[n]<<"\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...
#Verdict Execution timeMemoryGrader output
Fetching results...