Cod sursa(job #2362213)

Utilizator FrostfireMagirescu Tudor Frostfire Data 2 martie 2019 23:59:52
Problema Secventa 2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <iostream>
using namespace std;

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

int n, k, s[50100], Deque[50000], st, dr, sol = -200000000, p1, p2;

int main()
{
    f >> n >> k;
    for(int i=1; i<=n; i++)
    {
        int x;
        f >> x;
        s[i] = s[i-1] + x;
    }
    st = 1;
    dr = 0;
    for(int i=k; i<=n; i++)
    {
        while(st <= dr && s[i-k] <= s[Deque[dr]]) dr--;
        Deque[++dr] = i - k;
        cout << Deque[dr] << ' ';
        if(i >= k)
            if(s[i] - s[Deque[st]] > sol)
            {
                sol = s[i] - s[Deque[st]];
                p1 = Deque[st] + 1;
                p2 = i;
            }
    }
    g << p1 << ' ' << p2 << ' ' << sol << '\n';
    return 0;
}