Cod sursa(job #1574311)

Utilizator alinp25Alin Pisica alinp25 Data 20 ianuarie 2016 14:48:46
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

#define NMax 7000005

std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");

int n, a[NMax];
int beginIndex, endIndex, bestSum = -int(2e9), sum = 0, idx;

int main(int argc, char *argv[]){
    fin >> n;
    for (int i = 0; i < n; i++)
        fin >> a[i];
    for (int i = 0; i < n; i++){
        if (sum < 0)
            sum = a[i], idx = i;
        else
            sum += a[i];
        if (bestSum < sum)
            bestSum = sum, beginIndex = idx, endIndex = i;
    }
    fout << bestSum << " " << beginIndex + 1 << " " << endIndex + 1;
    return 0;
}