Cod sursa(job #2000285)

Utilizator FrincuFrinculeasa Alexandru Frincu Data 13 iulie 2017 12:25:15
Problema Deque Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <deque>
#include <vector>
#include <fstream>
using namespace std;

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