Cod sursa(job #2694313)

Utilizator andrei_ciobanuciobanu andrei andrei_ciobanu Data 8 ianuarie 2021 19:01:59
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 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 x;
    fscanf(fin, "%d", &x);


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

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