Cod sursa(job #2000612)

Utilizator FrincuFrinculeasa Alexandru Frincu Data 14 iulie 2017 11:37:20
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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()];
    }
    g<<s;
    return 0;
}