Pagini recente » Cod sursa (job #899365) | Cod sursa (job #3004515) | Cod sursa (job #215888) | Clasamentul arhivei Infoarena Monthly | Cod sursa (job #913765)
Cod sursa(job #913765)
#include <cstdio>
#include <deque>
#include <cstdio>
#include <iostream>
#define DIM 5000001
std::deque <int> Deque;
using namespace std;
FILE *fin=fopen("deque.in", "r"), *fout=fopen("deque.out", "w");
int n, k, i, a[DIM];
long long MIN;
int main()
{
fscanf(fin, "%d %d", &n, &k);
for(i=1;i<=n;i++)
fscanf(fin, "%d", &a[i]);
for(i=1;i<=n;i++)
{
while(!Deque.empty()&&a[Deque.back()]>=a[i])
Deque.pop_back();
Deque.push_back(i);
if(Deque.front()==i-k)
Deque.pop_front();
if(i>=k)
MIN+=a[Deque.front()];
}
fprintf(fout, "%lld\n", MIN);
return 0;
}