제출 #1139854

#제출 시각아이디문제언어결과실행 시간메모리
1139854andrewpBigger segments (IZhO19_segments)C++20
0 / 100
0 ms328 KiB
//Dedicated to my love, ivaziva
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define pii pair<int,int>   
#define all(x) x.begin(), x.end()
#define sz(a) ((int)a.size())
inline ll readint() {ll x; cin >> x; return x;}    
const int N=5e5+5;    

int n, a[N];
ll ps[N];

int main () {   
    ios::sync_with_stdio(false), cin.tie(0);  
        
    n=readint();
    for (int i=1; i<=n; i++) {
        a[i]=readint();
        ps[i]=ps[i-1]+a[i];
    }
    int ans=1;
    for (int j=1; j<=n; j++) {
        int i=j+1, curr=1; 
        ll sum=ps[j];
        while (i<=n) {
            int lo=i, hi=n, nxt=-1;
            while (lo<=hi) {
                int mid=(lo+hi)/2;
                if (ps[mid]-ps[i-1]>=sum) {
                    nxt=mid;
                    hi=mid-1;
                }
                else 
                    lo=mid+1;
            }    
            if (nxt==-1) 
                break;
            curr++;
            sum=ps[nxt]-ps[i-1];
            i=nxt+1;
        }
        ans=max(ans, curr);
    }
    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...