Cod sursa(job #1959846)

Utilizator alex273Groza Alexandru alex273 Data 9 aprilie 2017 23:14:24
Problema Deque Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("deque.in");ofstream out("deque.out");
int main() { int n,k,v[500001],dq[500001]; long long sm=0;
    in>>n>>k;
    for(int i=1;i <=n;++i) in>>v[i];
    int primul=1; int ultimul=0;
    for (int i=1;i <=n;++i) {
        while (primul <=ultimul&&v[i]<v[dq [ultimul]]) --ultimul;
        dq [++ultimul]=i;
        if (dq [primul]==i-k) ++primul;
        if (i>=k) sm+=v [dq[primul]]; 
        
    }
    out <<sm;
	
	return 0;
}