Cod sursa(job #1345594)

Utilizator ducu97Radu Seteanu ducu97 Data 17 februarie 2015 19:05:51
Problema Subsecventa de suma maxima Scor 35
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, q, 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; i ++)
    {
        minim =6000000;
        y = 0;
        for(q = 0; q < i; q ++)
        {
            if(S[q] < minim)
            {
                minim = S[q];
                y = q + 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;
}