Submission #1088813

#TimeUsernameProblemLanguageResultExecution timeMemory
1088813xnqsBigger segments (IZhO19_segments)C++17
0 / 100
0 ms460 KiB
#include <iostream> #include <fstream> #include <vector> #include <queue> #include <utility> #include <algorithm> int x; int arr[500005]; int64_t pfx[500005]; std::vector<int64_t> stk; int solve(int start) { int64_t sum = 0; for (int i = start; i <= x; i++) { sum += arr[i]; if (stk.back()<=sum) { stk.emplace_back(sum); sum = 0; } } if (sum) { stk.emplace_back(sum); } if (stk.size()>=2&&stk[stk.size()-2]>stk[stk.size()-2]) { stk[stk.size()-2] += stk[stk.size()-1]; stk.pop_back(); } return static_cast<int>(stk.size()); } int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(NULL); std::cin >> x; for (int i = 1; i <= x; i++) { std::cin >> arr[i]; pfx[i] = pfx[i-1] + arr[i]; } int64_t first_sum = 0; int ans = 0; for (int start = 1; start <= x; start++) { first_sum += arr[start]; stk.emplace_back(first_sum); ans = std::max(ans, solve(start+1)); stk.clear(); } std::cout << ans << "\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...