This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using ll = long long;
using std::vector;
using std::pair;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
int n;
std::cin >> n;
vector<ll> sum(n + 1);
for (int i = 0; i < n; ++i) {
std::cin >> sum[i + 1];
sum[i + 1] += sum[i];
}
vector<pair<int, ll>> dp(n + 1);
dp[1] = {1, 0};
for (int i = 1; i <= n; ++i) {
dp[i] = std::max(dp[i], dp[i - 1]);
const ll last = sum[i] - dp[i].second;
const int pos = std::lower_bound(sum.begin(), sum.end(), sum[i] + last) - sum.begin();
if (pos <= n) {
dp[pos] = std::max(dp[pos], pair(dp[i].first + 1, sum[i]));
}
}
std::cout << dp[n].first << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |