Pagini recente » Cod sursa (job #2482083) | Cod sursa (job #288655) | Cod sursa (job #1781533) | Cod sursa (job #2643009) | Cod sursa (job #2616468)
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int n,k, Deque[5000000], v[5000000];
void push_back(int Deque[], int val, int &back)
{
Deque[++back] = val;
}
void pop_back(int Deque[], int &back)
{
back--;
}
void pop_front(int Deque[], int val, int &front)
{
front++;
}
int main()
{
int i, back = 0, front = 1;
long long sum = 0;
f>>n>>k;
for(i = 1; i <= n; i++)
f>>v[i];
push_back(Deque, 1, back);
for(i = 2; i < n; i++)
{
while(v[i] <= v[Deque[back]] && front <= back)
pop_back(Deque, back);
push_back(Deque, i, back);
if(i >= k)
{
sum += v[Deque[front]];
}
if(i - k == Deque[front])
pop_front(Deque, i, front);
}
g << sum;
return 0;
}