Cod sursa(job #830939)

Utilizator 2dorTudor Ciurca 2dor Data 7 decembrie 2012 21:32:40
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;

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

int i, j, n, k, incep, sfar, smin, x;
long long s[50001];
int main() {
    fin >> n >> k;
    for (i = 1; i <= n; ++i)//Citire
        fin >> s[i];
    fin.close();
    long long smax = -1250000001;
    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) && (i - x - 1 >= k)) {
            smax = s[i] - smin;
            incep = x;
            sfar = i;
        }
        if (s[i] < smin) {
            smin = s[i];
            x = i;
        }
    }
    if (n == k)
        fout << "1 " << n << ' ' << s[n];
    else
        fout << incep + 1 << ' ' << sfar << ' ' << smax;
    fout.close();
    return 0;
}