Cod sursa(job #1053081)

Utilizator Emanuel9Dumitru Emanuel Cristian Emanuel9 Data 12 decembrie 2013 10:09:36
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <deque>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
    freopen("deque.in","r",stdin);
    freopen("deque.out","w",stdout);
    std:: deque <int> mydeque;

    int n,k;
    int *a;
    long long s = 0;
    cin>>n>>k;
    a=(int *)malloc(n*sizeof(int));
    for(int i=0;i<n;i++){
        cin>>a[i];
        while(!mydeque.empty() && a[mydeque.back()] > a[i])
            mydeque.pop_back();
        mydeque.push_back(i);
        if(i>=k-1){
            s+=a[mydeque.front()];
            if(mydeque.front() == i+1-k)
                mydeque.pop_front();

        }

    }

    cout<<s;
    fclose(stdin);
    fclose(stdout);
    return 0;
}