Cod sursa(job #1742700)

Utilizator razvandRazvan Dumitru razvand Data 16 august 2016 22:06:37
Problema Secventa 2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <tuple>
#include <fstream>

using namespace std;

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

pair<int, int> dp[50003];
int s[50003];

int main() {

    int n,k,v;
    int S = 0;
    int a1 = 1;
    int a2 = 1;
    int a3 = INT_MIN;
    in >> n >> k;

    dp[0] = {0, 0};

    for(int i = 1; i <= n; i++) {

        in >> s[i];
        s[i] += s[i-1];
        if(s[i] <= dp[i-1].first) {
            dp[i] = {s[i], i};
        } else {
            dp[i] = dp[i-1];
        }

        if(i >= k && s[i] - dp[i-k].first > a3) {
            a3 = s[i] - dp[i-k].first;
            a1 = dp[i-k].second+1;
            a2 = i;
        }

    }

    out << a1 << " " << a2 << " " << a3 << '\n';

    return 0;
}