제출 #501462

#제출 시각아이디문제언어결과실행 시간메모리
501462MazaalaiBigger segments (IZhO19_segments)C++17
37 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using VI = vector <int>; using VLL = vector <ll>; int n, m; const int N = 3e3 + 5; const ll INF = 1e18; ll pre[N], ans; int nums[N], dp[N], par[N]; signed main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); cin >> n; m = n+1; for (int i = 1; i <= n; i++) cin >> nums[i]; for (int i = 1; i <= n; i++) pre[i] += pre[i-1] + nums[i]; for (int i = 1; i <= n; i++) { int p = max(par[i], par[i-1]); par[i] = p; dp[i] = dp[p]+1; ll b = pre[i]; ll c = pre[p]; ll a = 2*b-c; int id = lower_bound(pre, pre+m, a)-pre; par[id] = max(par[id], i); } ans = dp[n]; 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...