Submission #883218

#TimeUsernameProblemLanguageResultExecution timeMemory
883218boris_mihovBigger segments (IZhO19_segments)C++17
37 / 100
1524 ms5464 KiB
#include <algorithm> #include <iostream> #include <numeric> #include <cstring> #include <vector> #include <bitset> #include <queue> #include <set> typedef long long llong; const int MAXN = 500000 + 10; const llong INF = 1e18; int n; int a[MAXN]; int dp[MAXN]; llong last[MAXN]; void solve() { std::fill(last + 1, last + 1 + n, INF); last[0] = 0; for (int i = 0 ; i <= n ; ++i) { llong sum = 0; for (int j = i + 1 ; j <= n ; ++j) { sum += a[j]; if (sum >= last[i]) { if (dp[i] + 1 > dp[j] || (dp[i] + 1 == dp[j] && last[j] > sum)) { dp[j] = dp[i] + 1; last[j] = sum; } } } } std::cout << dp[n] << '\n'; } void input() { std::cin >> n; for (int i = 1 ; i <= n ; ++i) { std::cin >> a[i]; } } void fastIOI() { std::ios_base :: sync_with_stdio(0); std::cout.tie(nullptr); std::cin.tie(nullptr); } int main() { fastIOI(); input(); solve(); return 0; }
#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...