| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1359144 | kunzaZa183 | Bigger segments (IZhO19_segments) | C++20 | 0 ms | 348 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int n;
cin >> n;
vector<int> vi(n + 1), qs;
vector<pair<int, int>> dp(n + 1);
for (int i = 1; i <= n; i++)
cin >> vi[i];
qs = vi;
for (int i = 1; i <= n; i++)
qs[i] += qs[i - 1];
for (int i = 1; i <= n; i++) {
int l = 1, r = i;
while (l < r) {
int mid = (l + r + 1) / 2;
if (dp[mid - 1].first > qs[i] - qs[mid - 1]) {
r = mid - 1;
} else {
l = mid;
}
}
dp[i] = {qs[i] - qs[l - 1], dp[l - 1].second + 1};
}
// for (auto [a, b] : dp)
// cout << a << " " << b << "\n";
cout << dp.back().second << "\n";
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
