Pagini recente » Istoria paginii runda/de_vacanta | Cod sursa (job #546327) | Monitorul de evaluare | Cod sursa (job #728582) | Cod sursa (job #2731967)
# include<iostream>
#include<fstream>
#include <stdio.h>
using namespace std;
#define maxn 5000010
int i, n, k, deque[maxn], v[maxn], front, rear;
long long suma;
int main ()
{
ifstream I ("deque.in");
ofstream O ("deque.out");
I>>n>>k;
front=0;
rear=-1;
for(int i=0;i<n;i++)
{
I>>v[i];
while(front<=rear && v[i]<=v[deque[rear]])
{
rear--;
}
rear++;
deque[rear]=i;
if(deque[front] == i-k)
{
front++;
}
if(i>=k-1)
{
suma+=v[deque[front]];
cout<<suma<<' ';
}
}
O<<suma;
//I.close();
O.close();
return 0;
}