Cod sursa(job #1987395)
Utilizator | Data | 30 mai 2017 17:26:28 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <fstream>
#include<deque>
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n, k, i,v[5000001];
long long s;
deque<int> w;
int main(){
in >> n >> k;
for( i = 1; i <= n; i ++ ){
in >> v[i];
}
for( i = 1; i <= n; i ++ ){
while( w.empty() == 0 && v[w.back()] > v[i]){
w.pop_back();
}
w.push_back(i);
if( w.front() <= i-k ){
w.pop_front();
}
if( i >= k ){
s+=v[w.front()];
}
}
out<<s;
return 0;
}