Cod sursa(job #1899588)

Utilizator shantih1Alex S Hill shantih1 Data 2 martie 2017 20:21:01
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>

using namespace std;

int n, bestsum, dr;
int v[6000001], i, best[6000001];

int main () {
    
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    
    fin >> n;
    for (i = 1; i <= n; i++)    fin >> v[i];
    
    bestsum = v[1];
    dr = 1;
    for (i = 1; i <= n; i++)
    {
        best[i] = v[i];
        if (best[i] < best[i-1] + v[i])
            best[i] = best[i-1] + v[i];
        
        if (best[i] > bestsum)
        {
            bestsum = best[i];
            dr = i;
        }
    }
    
    i = dr;
    n = bestsum;
    while (i >= 1 && n != 0)
    {
        n -= v[i];
        i--;
    }
        
    fout << bestsum << " " << i+1 << " " << dr << "\n";
}
//5 -6 3 4 -2 3 -3