Cod sursa(job #646174)

Utilizator xman2f4uIulia Ignatov xman2f4u Data 11 decembrie 2011 01:01:34
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    ifstream fin("ssm.in", istream::in);
    ofstream fout("ssn.out");
    
    int n;
    fin >> n;
    
    int s[n];
    int best[n];
    int start[n];
    int i;
    fin >> s[0];
    best[0] = s[0];
    start[0] = 0;
    for (i = 1; i < n; ++i)
    {
        fin >> s[i];
        if (best[i-1] + s[i] > s[i])
        {
            best[i] = best[i-1]+s[i];
            start[i] = start[i-1];
        }
        else
        {
            best[i] = s[i];
            start[i] = i;
        }
    }
    
    int max = best[0];
    int maxs = start[0];
    int maxe = 0;
    for (i = 1; i < n; ++i)
    {
        if (best[i] > max)
        {
            max = best[i];
            maxs = start[i];
            maxe = i;
        }
    }
    
    fout << max << " " << maxs + 1 << " " << maxe + 1 << "\n";
    
    return 0;
}