Pagini recente » Cod sursa (job #411385) | Cod sursa (job #1523490) | Cod sursa (job #1841418) | Cod sursa (job #2233407) | Cod sursa (job #716195)
Cod sursa(job #716195)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int sir[5000000], 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;
}