Cod sursa(job #1306070)

Utilizator refugiatBoni Daniel Stefan refugiat Data 30 decembrie 2014 15:01:25
Problema Deque Scor 25
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include<stdio.h>
#include<iostream>
#include<fstream>
#include<deque>
#include<algorithm>
#include<limits.h>
using namespace std;
deque<int> v;
deque<int> p;
int main()
{
    ifstream si;
    si.open("deque.in");

    ofstream so;
    so.open("deque.out");
    int n,k;
    si>>n>>k;
    int a,i;
    for(i=0;i<k;++i)
    {
        si>>a;
        while(!v.empty()&&v.back()>a)
        {
            v.pop_back();
            p.pop_back();
        }
        v.push_back(a);
        p.push_back(i);
    }
    int s;
    s=v.front();
    for(;i<n;++i)
    {
        si>>a;
        while(!v.empty()&&v.back()>a)
        {
            v.pop_back();
            p.pop_back();
        }
        if(!p.empty()&&p.front()==i-k)
        {
            p.pop_front();
            v.pop_front();
        }
        v.push_back(a);
        p.push_back(i);
        s=s+v.front();
    }
    so<<s<<'\n';
}