Pagini recente » Cod sursa (job #1431224) | Cod sursa (job #2588635) | Cod sursa (job #2459144) | Cod sursa (job #2770446) | Cod sursa (job #1064783)
#include <fstream>
#define maxn 5000008
using namespace std;
int sir[maxn], deck[maxn];
long long suma;
int main()
{
ifstream in("deque.in ");
ofstream out("deque.out");
int n,k;
in>>n>>k;
for (int i = 1; i <= n; i++) in>>sir[i];
int head=1;
int tail=0;
for (int i = 1; i <= n; i++)
{
while ( head <= tail && sir[i] <= sir[ deck[tail] ] )
tail--;
tail++;
deck[tail] = i;
if (deck[head] == i-k)
head++;
if (i >= k)
suma += sir[ deck[head] ];
}
out<<suma;
in.close();
out.close();
return 0;
}