Cod sursa(job #2343434)

Utilizator hristacheruxiRuxandra Hristache hristacheruxi Data 13 februarie 2019 23:18:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#define INF 9223372036854775808
int main(){
    FILE *fin   = fopen("ssm.in", "r");
    FILE *fout  = fopen("ssm.out", "w");
    int n, i, i1, i2, j1, b;
    long long s, smax, a, maxim;

    fscanf(fin, "%d", &n);
    s = 0;
    maxim = smax = -INF;
    i1 = b = 1;
    for (i = 1; i <= n; ++i)
    {
        fscanf(fin, "%lld", &a);
        if (s < 0)
        {
            s = 0;
            b = i;
        }

        if (maxim < a)
        {
            maxim = a;
            j1 = i;
        }

        s += a;

        if (s > smax)
        {
            smax = s;
            i1 = b;
            i2 = i;
        }
    }

    if (maxim < 0)
        fprintf(fout, "%lld %d %d", maxim, j1, j1);
    else
        fprintf(fout, "%lld %d %d", smax, i1, i2);
    return 0;
}