Cod sursa(job #2116901)

Utilizator anisca22Ana Baltaretu anisca22 Data 28 ianuarie 2018 12:09:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>
#define NMAX 6000005
#define INF 0x3f3f3f3f

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int N, MX = - INF, MN;
long SP[NMAX];

void SSM()
{
    int Kinit, Kfin, K = 1;
    for (int i = 1; i <= N; i++)
    {
        if (SP[i] - MN > MX)
        {
            MX = SP[i] - MN;
            Kinit = K;
            Kfin = i;
        }
        if (SP[i] < MN)
        {
            MN = SP[i];
            K = i + 1;
        }
    }
    fout << MX << " " << Kinit << " " << Kfin;
}

int main()
{
    fin >> N;
    for (int i = 1; i <= N; i++)
    {
        int nr;
        fin >> nr;
        SP[i] = SP[i - 1] + nr;
    }
    SSM();
    return 0;
}