Cod sursa(job #2694319)

Utilizator andrei_ciobanuciobanu andrei andrei_ciobanu Data 8 ianuarie 2021 19:19:53
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <cstdio>

using namespace std;

#define MAXN 6000000


int main()
{
    FILE *fin=fopen("ssm.in", "r");
    int n;
    fscanf(fin, "%d", &n);

    int maxSubSum=-1, maxSubSumI=-1, start=1, left=1, right=1;

    for (int i=1; i<=n; i++){
        if (maxSubSumI<0){
            start=i;
            maxSubSumI=0;
        }
        int x;
        fscanf(fin, "%d", &x);
        maxSubSumI+=x;
        if (maxSubSum<maxSubSumI){
            left=start;
            right=i;
            maxSubSum=maxSubSumI;
        }
    }
    fclose(fin);

    FILE *fout=fopen("ssm.out", "w");
    fprintf(fout, "%d %d %d", maxSubSum, left, right);
    fclose(fout);
    return 0;
}