Pagini recente » Cod sursa (job #3241133) | Cod sursa (job #676443) | Cod sursa (job #1396980) | Cod sursa (job #487719) | Cod sursa (job #716198)
Cod sursa(job #716198)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int sir[5000000];
long long suma;
deque <int> coada;
int N,K;
int main()
{
int i;
f>>N>>K;
for(i = 0; i < K; i++) {
f>>sir[i];
while (!coada.empty() && sir[coada.front()] > sir[i]){
coada.pop_front();
}
if (!coada.empty() && coada.back() + K <= i){
coada.pop_back();
}
coada.push_front(i);
}
suma += sir[coada.back()];
for (i = K; i < N; i++){
f>>sir[i];
while (!coada.empty() && sir[coada.front()] > sir[i]){
coada.pop_front();
}
if (!coada.empty() && coada.back() + K <= i){
coada.pop_back();
}
coada.push_front(i);
suma += sir[coada.back()];
}
g<<suma;
}