Submission #467164

#TimeUsernameProblemLanguageResultExecution timeMemory
467164theconfusedguyBigger segments (IZhO19_segments)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h>
#define SPEED ios_base::sync_with_stdio(false);cin.tie(NULL);

using namespace std;


typedef long long int lli;
typedef vector<int> vi;
typedef vector<long long int> vll;

const int mod = 1000000007;

int main(){
    SPEED;

    int N; cin >> N;
    int arr[N+1];
    for( int i = 1; i <= N; i++ ) cin >> arr[i];
    vector<lli> dp(N+2, 0);
    vector<lli> prevMinimalSum(N+2, 0);

    dp[1] = 1;
    prevMinimalSum[1] = arr[1];

    for( int i = 2; i <= N; i++ ){
        lli currSum = 0;
        for( int j = i; j >= 1; j-- ){
            currSum += arr[j];
            if( currSum >= prevMinimalSum[j-1] && dp[i] < 1 + dp[j-1] ){
                dp[i] = 1 + dp[j-1];
                prevMinimalSum[i] = currSum;
            }
        }
    }

    cout << N - dp[N] << endl;
    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...