Pagini recente » Cod sursa (job #1992852) | Cod sursa (job #2973668) | Cod sursa (job #2088883) | Cod sursa (job #2506806) | Cod sursa (job #2008830)
#include <iostream>
#include <fstream>
#define NMAX 5000001
using namespace std;
ifstream in("deque.in");
ofstream out("deque.out");
int n, k, v[NMAX];
int st, dr;
int coada[NMAX];
long long suma;
void rezolvare(){
st = 1;
dr = 0;
suma = 0;
for(int i = 1; i <= n; i++){
while(dr >= st && v[coada[dr]] > v[i]){
dr--;
}
coada[++dr] = i;
if((i - k) == coada[st]){
st++;
}
if(i >= k){
suma += v[coada[st]];
}
}
}
void citire(){
in >> n >> k;
for(int i = 1; i <= n; i++){
in >> v[i];
}
}
void afisare(){
out << suma;
}
int main(){
citire();
rezolvare();
afisare();
}