Pagini recente » Cod sursa (job #1133639) | Cod sursa (job #2864895) | Cod sursa (job #1321005) | Cod sursa (job #1053360) | Cod sursa (job #2616469)
#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 = -1, front = 0;
long long sum = 0;
f>>n>>k;
for(i = 0; i < n; i++)
f>>v[i];
push_back(Deque, 0, back);
for(i = 1; i < n; i++)
{
while(v[i] <= v[Deque[back]] && front <= back)
pop_back(Deque, back);
push_back(Deque, i, back);
if(i >= k - 1)
{
sum += v[Deque[front]];
}
if(i - k + 1 == Deque[front])
pop_front(Deque, i, front);
}
g << sum;
return 0;
}