제출 #1335498

#제출 시각아이디문제언어결과실행 시간메모리
1335498WarinchaiBigger segments (IZhO19_segments)C++20
13 / 100
1 ms344 KiB
#include<bits/stdc++.h>
using namespace std;

int ar[500005];
int mn[500005];
int inf=1e9+5;
int rans[500005];
int sum[500005];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;cin>>n;
    for(int i=1;i<=n;i++){
        cin>>ar[i];
        sum[i]=sum[i-1]+ar[i];
        mn[i]=inf;
    }
    for(int i=1;i<=n;i++){
        int st=0,en=i-1,ans=0;
        while(st<=en){
            int m=(st+en)/2;
            if(sum[i]-sum[m]>=mn[m]){
                ans=m;
                st=m+1;
            }else{
                en=m-1;
            }
        }
        mn[i]=sum[i]-sum[ans];
        rans[i]=rans[ans]+1;
    }
    cout<<rans[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...