제출 #1134141

#제출 시각아이디문제언어결과실행 시간메모리
1134141AgageldiBigger segments (IZhO19_segments)C++17
13 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define N 200005 #define pb push_back #define ff first #define ss second #define sz(s) (int)s.size() ll n, t, a[N], dp[N], sum[N], p[N]; int main (){ ios::sync_with_stdio(0);cin.tie(0); cin >> n; for(int i = 1; i <= n; i++) { cin >> a[i]; p[i] = p[i-1] + a[i]; } dp[1] = 1; sum[1] = a[1]; for(int i = 2; i <= n; i++) { if(a[i] >= sum[i - 1]) { dp[i] = dp[i-1] + 1; sum[i] = a[i]; continue; } int l = 1, r = i, jog = 0; dp[i] = dp[i-1]; sum[i] = sum[i-1] + a[i]; while(l <= r) { int md = (l + r)/2; if(p[i] - p[md - 1] >= sum[md - 1]) { l = md + 1; jog = md - 1; continue; } r = md - 1; } dp[i] = dp[jog] + 1; sum[i] = p[i] - p[jog]; } cout << dp[n] << '\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...