제출 #707548

#제출 시각아이디문제언어결과실행 시간메모리
707548emptypringlescanBigger segments (IZhO19_segments)C++17
13 / 100
1 ms212 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin >> n;
	long long arr[n],pref[n+1];
	for(int i=0; i<n; i++) cin >> arr[i];
	pref[0]=0;
	for(int i=0; i<n; i++){
		pref[i+1]=pref[i]+arr[i];
	}
	pair<int,long long> dp[n+1];
	dp[0]={0,0};
	for(int i=1; i<=n; i++){
		int lo=1,hi=i,mid;
		while(lo<hi){
			mid=(lo+hi+1)/2;
			long long cur=pref[i]-pref[mid-1];
			if(cur<dp[mid-1].second) hi=mid-1;
			else lo=mid;
		}
		dp[i]={dp[lo-1].first+1LL,pref[i]-pref[lo-1]};
	}
	cout << dp[n].first;
	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...