Cod sursa(job #2000204)

Utilizator rexlcdTenea Mihai rexlcd Data 12 iulie 2017 22:36:39
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <deque>

using namespace std;

int v[5000002];
deque < pair < int , int > > q;

int main()
{
    ifstream f("deque.in");
    ofstream g("deque.out");
    int n,k;
    long long s=0;
    f>>n>>k;
    for(int i=1;i<=k-1;i++)
    {
        int x; f>>x;
        while(!q.empty() && x<=q.back().first)
            q.pop_back();
        q.push_back(make_pair(x,i));
    }
    for(int i=k;i<=n;i++)
    {
        int x; f>>x;
        while(!q.empty() && x<=q.back().first)
            q.pop_back();
        q.push_back(make_pair(x,i));
        if(q.front().second<i-k+1)
            q.pop_front();

        s+=1LL*q.front().first;
    }
    g<<s<<'\n';
    f.close();
    g.close();
    return 0;
}