Cod sursa(job #2228016)

Utilizator vladm98Munteanu Vlad vladm98 Data 2 august 2018 14:51:31
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

int dp[6000001];
int leftt[6000001];

int main()
{
    ifstream fin ("ssm.in");
    ofstream fout ("ssm.out");
    int n, maxSum = -(1 << 30), bestLeft, bestRight;
    dp[0] = 0;
    leftt[0] = 1;
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        int x;
        fin >> x;
        dp[i] = x;
        leftt[i] = i;
        if (dp[i - 1] >= 0) {
            dp[i] += dp[i - 1];
            leftt[i] = leftt[i - 1];
        }
        if (maxSum < dp[i]) {
            maxSum = dp[i];
            bestLeft = leftt[i];
            bestRight = i;
        }
    }
    fout << maxSum << ' ' << bestLeft << ' ' << bestRight;
    return 0;
}