Submission #524663

#TimeUsernameProblemLanguageResultExecution timeMemory
524663DragonO_oBigger segments (IZhO19_segments)C++17
13 / 100
1 ms332 KiB
#include <bits/stdc++.h> using namespace std; #define x first #define y second #define pb push_back #define all(a) a.begin(), a.end() #define int long long typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<ll> vll; typedef vector<int> vi; typedef vector<bool> vb; typedef vector<vi> vvi; typedef vector<vll> vvll; typedef vector<pii> vpii; typedef vector<pll> vpll; const int N = 5e5 + 99; int a[N], pref[N]; pii dp[N]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i]; pref[i] = pref[i - 1] + a[i]; } dp[0] = {0, 0}; dp[1] = {1, a[1]}; for (int i = 2; i <= n; ++i) { int l = 1, r = i; while (l < r) { int mid = (l + r + 1) / 2; if (pref[i] - pref[mid - 1] < dp[mid - 1].y) { r = mid - 1; } else { l = mid; } } dp[i] = {dp[l - 1].x + 1, pref[i] - pref[l - 1]}; } cout << dp[n].x; }
#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...