Pagini recente » Cod sursa (job #1341422) | Cod sursa (job #882559) | Cod sursa (job #1931225) | Cod sursa (job #1701803) | Cod sursa (job #2725298)
#include <iostream>
#include <fstream>
#define MAX 5000001
using namespace std;
int A[MAX], my_deque[MAX];
int main()
{
ifstream fin("deque.in");
ofstream fout("deque.out");
long long int N, K;
int i;
int up = 0, down = -1;
long long int sum = 0;
fin>>N>>K;
for (i = 0; i < N; i++)
fin>>A[i];
for (i = 0; i < N; i++)
{
while (up <= down && A[i] <= A[my_deque[down]])
down--;
down += 1;
my_deque[down] = i;
if (my_deque[up] == i-K)
up++;
if(i+1>=K)
sum += A[my_deque[up]];
}
fout<<sum;
fin.close();
fout.close();
return 0;
}