Cod sursa(job #1844255)

Utilizator tudormaximTudor Maxim tudormaxim Data 9 ianuarie 2017 20:43:30
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int maxn = 5e4 + 5;
int V[maxn];

int main() {
    ios_base :: sync_with_stdio (false);
    int n, k, i, x, y, left, right, maxx, s;
    fin >> n >> k;
    for (i = 1; i <= n; i++) {
        fin >> V[i];
        V[i] += V[i - 1];
    }
    left = x = 1;
    right = y = k;
    s = V[k];
    maxx = V[k];
    for (i = k + 1; i <= n; i++) {
        if (V[i] - V[i - k] > s + V[i] - V[i - 1]) {
            left = i - k + 1;
            right = i;
            s = V[i] - V[i - k];
        }
        else {
            s += V[i] - V[i - 1];
            right = i;
        }
        if (s > maxx) {
            maxx = s;
            x = left;
            y = right;
        }
    }
    fout << x << " " << y << " " << maxx << "\n";
    fin.close();
    fout.close();
    return 0;
}