Cod sursa(job #1315653)

Utilizator sanzianaioneteIonete Sanziana sanzianaionete Data 12 ianuarie 2015 23:02:00
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<fstream>
#include<deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,x;
long long s;
deque<int>val,poz;
int main()
{
    f>>n>>k;
    for(int i=1;i<=k;i++)
    {
        f>>x;
        while(val.size()&&x<val[val.size()-1])
        {
            val.pop_back();
            poz.pop_back();
        }
        val.push_back(x);
        poz.push_back(i);
    }
    s=val[0];
    for(int i=k+1;i<=n;i++)
    {
        f>>x;
        while(val.size()&&x<val[val.size()-1])
        {
            val.pop_back();
            poz.pop_back();
        }
        val.push_back(x);
        poz.push_back(i);
        if(poz[0]<=i-k)
        {
            val.pop_front();
            poz.pop_front();
        }
        s+=val[0];
    }
    g<<s;
    f.close();g.close();
    return 0;
}