Cod sursa(job #354706)

Utilizator csizMocanu Calin csiz Data 9 octombrie 2009 10:31:42
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <queue>
#include <iostream>
using namespace std;

int main(){
    long long int suma=0;
    deque<pair<int,int> > q;
    ifstream in("deque.in");
    ofstream out("deque.out");

    int n;int k;
    in>>n>>k;

    for(int i=0;i<k;i++){
        int t;in>>t;
        while(!q.empty() and q.back().first>t) q.pop_back();
        q.push_back(pair<int,int>(t,i));
    }
    for(int i=k;i<n;i++){
        suma+=q.front().first;
        if(q.front().second==i-k) q.pop_front();
        int t;in>>t;
        while(!q.empty() and q.back().first>t) q.pop_back();
        q.push_back(pair<int,int>(t,i));
    }
    suma+=q.front().first;
    out<<suma;
}