Submission #1309274

#TimeUsernameProblemLanguageResultExecution timeMemory
1309274elitewantsyouBigger segments (IZhO19_segments)C++20
13 / 100
4 ms584 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; const int N = 500500; int n; int a[N]; long long s[N]; int d[N]; vector<pair<long long, int>> v[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; s[i] = s[i - 1] + a[i]; } v[0].push_back({0, 0}); for (int i = 1; i <= n; i++) { d[i] = d[i - 1]; if (s[i] >= v[d[i]][0].first) { d[i] = d[i - 1] + 1; } int j = lower_bound(v[d[i] - 1].begin(), v[d[i] - 1].end(), make_pair(s[i] + 1, 0)) - v[d[i] - 1].begin() - 1; j = v[d[i] - 1][j].second; v[d[i]].push_back({2 * s[i] - s[j], i}); } cout << d[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...