Submission #524598

#TimeUsernameProblemLanguageResultExecution timeMemory
524598Mr_HusanboyBigger segments (IZhO19_segments)C++14
100 / 100
80 ms20920 KiB
// Muallif: Mansuraliyev Husanboy Murotali o'g'li >> NamPS #include<bits/stdc++.h> using namespace std; #define ll long long #define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL) #define all(a) a.begin(), a.end() #define F first #define S second // 0-9 >> 48-57; A-Z>>65-90 and a-z>>97-122 respectively; //string a[11]={"CARS","cars","IuVEJxTXs","UvOHhng","yZKfAYmaqolM","NtGQibw","djPrCpek","FWzL","aySBaPyb","RM","gzYMynY"}; //string b[11]={"Unil","EPFL","vpVZzBNtL","SCubWma","ocIYneAPqxDs","hRkMGgJ","fHrFUQTj","XOwd","PolyProg","is","awesome"}; void solve(){ int n; cin>>n; ll a[n+1];for(int i=1;i<=n;i++) cin>>a[i]; vector<ll> sum(n+2); ll k=0; for(int i=1;i<=n;i++) k+=a[i],sum[i]=k; vector<ll> dp(n+2),tem(n+2); for(int i=1;i<=n;i++){ tem[i]=max(tem[i],tem[i-1]); dp[i]=dp[tem[i]]+1;ll o=2ll*sum[i]-sum[tem[i]]; int x=lower_bound(sum.begin()+1,sum.end()-1,o)-sum.begin(); tem[x]=max(i*1ll,tem[x]); } cout<<dp[n]; } int main(){ ios; //int t=1; cin>>t; while(t--) solve(); }
#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...