Submission #1293414

#TimeUsernameProblemLanguageResultExecution timeMemory
1293414quocbaooBigger segments (IZhO19_segments)C++20
0 / 100
1 ms712 KiB
#include<bits/stdc++.h>
#define fi first
#define se second
#define ll long long
using namespace std;
ll a[500005];int n;
int get(int ok){
    ll s=0;
    for (int i=1;i<=ok;i++) s+=a[i];
    int dem=1;
    for (int i=ok+1;i<=n;i++){
        ll s1=0;int j=i,lu=j;
        while (j<=n&&s1<s){
            s1+=a[j];lu=j;j++;
        }
        if (s1>=s) dem++,s=s1;
        i=lu;
//        cout<<s1<<endl;
    }
    return dem;
}
int main(){
//    if (fopen("thu.inp","r")){
//        freopen("thu.inp","r",stdin);
//        freopen("thu.out","w",stdout);
//    }
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for (int i=1;i<=n;i++) cin>>a[i];
    int l=1,r=n,ans=1;
//    cout<<get(2)<<endl;
    while (l<=r){
        int mid=(l+r)/2;
        if (get(mid)<get(mid+1)) l=mid+1;
        else r=mid-1;
        ans=max(ans,get(mid));
    }
    cout<<ans;
}
#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...