Cod sursa(job #2203851)

Utilizator GarboteialexGarbotei Alex Garboteialex Data 13 mai 2018 15:08:31
Problema Secventa 2 Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>

using namespace std;

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

#define DM 50000

int n,k;
int v[DM + 1], sp[DM + 1];

inline int pS(int i, int j) {
    return (sp[j] - sp[i - 1]);
}

int main() {
    fin >> n >> k;
    for(int i = 1; i <= n; i++) {
        fin >> v[i];
    }

    for(int i = 1; i <= n; i++) {
        sp[i] = sp[i - 1] + v[i];
    }

    int maxsum, sum;
    sum = maxsum =  sp[1];
    int lenght = k;
    int c1 = 1, c2 = 1;

    for(int i = 2; i <= n - k + 1; i++) {
        if(sum + v[c1 + lenght] < pS(i, i + k - 1)) {
            c1 = i;
            lenght = k;
            sum = pS(i, i + k - 1);
        } else {
            sum += v[c1 + lenght];
            lenght++;
        }

        if(sum > maxsum) {
            maxsum = sum;
            c2 = c1 + lenght - 1;
        }
    }

    fout << c1 << " " << c2 << " " << maxsum;

}