Cod sursa(job #2055510)
Utilizator | Data | 3 noiembrie 2017 12:36:03 | |
---|---|---|---|
Problema | Deque | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
using namespace std;
const int N = 5000001;
int v[N];
int d[N];
ifstream in( "deque.in" );
ofstream out( "deque.out" );
int main(){
int st,dr,n,k,i;
long long s;
st=0;
dr=-1;
s=0;
in >> n >> k;
for(i=0; i<n; i++){
in >> v[i];
if(st <= dr && d[st] == i-k)
st++;
while(st <= dr && v[i] <= v[d[dr]])
dr--;
d[++dr]=i;
if(i >= k-1)
s=s+v[d[st]];
}
out << s;
return 0;
}