Cod sursa(job #1342699)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 14 februarie 2015 13:57:13
Problema Deque Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k,p,u;
int v[5000011];
long long sol;

deque<int> q;

int main(void){
    register int i,j,x;

    f>>n>>k;
    p=1;
    for(i=1;i<=n;i++){
        f>>v[i];
        if(i>k) p++;
        if(i>k && q.front()<p)
            q.pop_front();
        while(!q.empty() && v[q.back()]>v[i])
            q.pop_back();
        q.push_back(i);
        if(i>=k)
            sol+=v[q.front()];
    }

    g<<sol;
    f.close();
    g.close();
    return 0;
}