Cod sursa(job #1899531)

Utilizator kywyPApescu tiGEriu kywy Data 2 martie 2017 19:54:57
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<cstdio>
#include<algorithm>
using namespace std;
FILE* in = fopen("ssm.in", "r");
FILE* out = fopen("ssm.out", "w");
int d[6000007];
int main()
{
    int n, a, maxnr = 0, inc = 1, sf, tmp = 1;
    fscanf(in, "%d", &n);
    fscanf(in, "%d", &a);
    maxnr = a;
    d[1] = a;
    for(int i = 2; i <= n; ++i)
    {
        fscanf(in, "%d", &a);
        if(d[i - 1] + a <= 0)
        {
            d[i] = 0;
            tmp = i + 1;
        }
        else d[i] = d[i - 1] + a;
        int nr = max(d[i - 1], d[i]);
        if(maxnr < nr)
        {
            maxnr = nr;
            sf = i;
            inc = tmp;
        }
    }
    fprintf(out, "%d %d %d", maxnr, inc, sf);
}