Cod sursa(job #830891)

Utilizator 2dorTudor Ciurca 2dor Data 7 decembrie 2012 20:14:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <iostream>
using namespace std;

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

int i, j, n, incep, sfar, smin, x, s[6000001];
int main() {
    fin >> n;
    for (i = 1; i <= n; ++i)//Citire
        fin >> s[i];
    fin.close();
    int smax = -2147483646;
    for (i = 1; i <= n; ++i) {
        s[i] += s[i - 1];//Calculam sumele numerelor de la 1...i pe pozitia s[i]
        if (s[i] - smin > smax) {
            smax = s[i] - smin;
            incep = x;
            sfar = i;
        }
        if (s[i] < smin) {
            smin = s[i];
            x = i;
        }
    }
    fout << smax << ' ' << incep + 1 << ' ' << sfar;
    fout.close();
    return 0;
}