Cod sursa(job #1343549)

Utilizator ducu97Radu Seteanu ducu97 Data 15 februarie 2015 16:39:48
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#define NMax 6000001

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

struct tip{
    int val;
    int inceput;
    int sfarsit;
};

int S[NMax], v[NMax];
tip T[NMax];

int main()
{
    int i, j, n, x, y, minim, maxim=0;

    in >> n;

    for(i = 1 ;i <= n; i ++)
    {
        in>>S[i];
        S[i]+=S[i-1];
    }
    T[1].val = S[1];
    T[n].val = S[n];
    for(i = 2; i <= n-1; i ++)
    {
        minim = n * n;
        y = 0;
        for(j = 0; j < i; j ++)
        {
            if(S[j] < minim)
            {
                minim = S[j];
                y = j + 1;
            }
        }
        T[i].inceput = y;
        T[i].val = S[i] - minim;
        T[i].sfarsit = i;
        if(T[i].val > maxim)
        {
            maxim = T[i].val;
            j = i;
        }
    }

    out << T[j].val << " " << T[j].inceput << " " << T[j].sfarsit << endl;

    return 0;
}