Cod sursa(job #2694308)

Utilizator andrei_ciobanuciobanu andrei andrei_ciobanu Data 8 ianuarie 2021 18:51:20
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <cstdio>
using namespace std;

#define MAXN 6000000
int maxSumI[MAXN];

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

    int x;
    fscanf(fin, "%d", &x);
    maxSumI[0]=x;

    int maxSubSum=x, start=0, left=0, right=0;
    for (int i=1; i<n; i++){
        fscanf(fin, "%d", &x);
        if (maxSumI[i-1]>0){
            maxSumI[i]=x+maxSumI[i-1];
        }else{
            maxSumI[i]=x;
            start=i;
        }
        if (maxSubSum<maxSumI[i]){
            maxSubSum=maxSumI[i];
            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;
}