Cod sursa(job #1895721)

Utilizator RaresEGaySopterean Adrian RaresEGay Data 28 februarie 2017 10:24:24
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <iostream>
#define maxn 50001
#define INF 0x3f3f3f3f
using namespace std;

int n, k, s[maxn];
int best[maxn], maxim = -INF, beg, endn, d[maxn], p[maxn];

ifstream f("secv2.in");
ofstream g("secv2.out");

int main(){
    f >> n >> k;
    for(int i=1; i<=n; ++i){
        f >> s[i], s[i]+=s[i-1];
        if(s[i] < d[i-1]){
            d[i] = s[i];
            p[i] = i;
        }
        else{
            d[i] = d[i-1];
            p[i] = p[i-1];
        }
        if(i>=k and s[i] - d[i-k] > maxim){
            maxim = s[i] - d[i-k];
            beg = p[i-k] + 1;
            endn = i;
        }
    }
    g << beg << ' ' << endn << ' ' << maxim;
}