Submission #1336305

#TimeUsernameProblemLanguageResultExecution timeMemory
1336305aaaaaaaaBigger segments (IZhO19_segments)C++20
27 / 100
1596 ms71212 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int inf = 2e18;

signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr); cout.tie(nullptr);

    int n, ans = 0;
    cin >> n;

    vector<int> a(n + 1, 0);
    for(int i = 1; i <= n; ++i){
        cin >> a[i];
    }

    vector<vector<int>> dp(n + 5, vector<int>(n + 5, inf));

    dp[0][0] = 0;

    for(int i = 1; i <= n; ++i){
        for(int k = 1; k <= i; ++k){
            for(int j = i, s = 0; j >= 1; --j){
                s += a[j];
                if(s >= dp[j - 1][k - 1]){
                    dp[i][k] = min(dp[i][k], s);
                }
            }
        }
    }

    for(int i = 1; i <= n; ++i){
        for(int j = 1; j <= n; ++j){
            if(dp[i][j] < inf) ans = max(ans, j);
        }
    }

    cout << ans << "\n";


    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...