Pagini recente » Cod sursa (job #2403427) | Cod sursa (job #2120626) | Cod sursa (job #1419022) | Cod sursa (job #235123) | Cod sursa (job #2262174)
#include <cstdio>
#include <deque>
#include <iostream>
#define nmax 5000005
using namespace std;
deque <int> p;
long long sum;
int n,k,x,v[nmax];
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
int main()
{
int i,j;
fscanf(f,"%d %d",&n,&k);
for (i=1; i<=k; i++) {
fscanf(f,"%d",&v[i]);
while (!p.empty()&&v[i]<v[p.back()])
p.pop_back();
p.push_back(i);
}
sum+=v[p.front()];
for (i=k+1;i<=n;i++) {
while (!p.empty()&&i-p.front()>=k)
p.pop_front();
fscanf(f,"%d",&v[i]);
while (!p.empty()&&v[i]<v[p.back()])
p.pop_back();
p.push_back(i);
sum+=1LL*v[p.front()];
}
fprintf(g,"%lld\n",sum);
return 0;
}