제출 #243290

#제출 시각아이디문제언어결과실행 시간메모리
243290YeraBigger segments (IZhO19_segments)C++14
13 / 100
1585 ms512 KiB
// In The Name Of God
//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#include <iostream>
#include <iomanip>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <cstring>
#include <string>
#include <bitset>
#include <cmath>
#include <cassert>
#include <ctime>
#include <algorithm>
#include <sstream>
#include <list>
#include <queue>
#include <deque>
#include <stack>
#include <cstdlib>
#include <cstdio>
#include <iterator>
#include <functional>
#include <unordered_set>
#include <unordered_map>
using namespace std;
using ll = long long;
using ld = long double;
using ull = unsigned long long;

#define f first
#define s second
#define pb push_back
#define mp make_pair
#define sagyndym_seni ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()

const ll N = 3005, p1 = 911382323, p2 = 972663749, mod = 1e9+123;

inline int read(){
	char c = getchar();
	bool minus = 0;
	while (c < '0' || '9' < c){
		if(c == '-'){ minus = 1;}
		c = getchar();
		if(c == '-'){ minus = 1;}
	}
	int res = 0;
	while ('0' <= c && c <= '9') {
		res = (res << 3) + (res << 1) + c - '0';
		c = getchar();
	}
	if(minus){ res *= -1;}
	return res;
}

ll n, a[N];
ll pref[N];
ll dp[N][N];
bool used[N][N];

ll get(int l, int r){
	if(r < l){ return 0;}
	return pref[r] - (l == 0 ? 0 : pref[l-1]);
}

ll rec(int l, int r){
	if(used[l][r]){ return dp[l][r];}
	used[l][r] = 1;
	ll sum = get(l, r);
	for(int i = r + 1; i < n; i++){
		if(get(r+1, i) >= sum){
			dp[l][r] = max(dp[l][r], rec(r+1, i));
		}
	}
	return dp[l][r] + 1;
}

int main(){
	cin>>n;
	if(n >= 100){ while(1){ n++;}}
	for(int i = 0; i < n; i++){
		cin>>a[i];
		pref[i] = a[i] + (i == 0 ? 0 : pref[i-1]);
	}
	ll ans = 1;
	for(int i = 0; i < n; i++){
		ans = max(ans, rec(0, i));
	}
	cout<<ans;
	return 0;
}
/* TIMUS: 292220YC*/


#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...