Pagini recente » Cod sursa (job #459071) | Cod sursa (job #2136672) | Cod sursa (job #706211) | Cod sursa (job #2551097) | Cod sursa (job #816108)
Cod sursa(job #816108)
#include <iostream>
#include <deque>
#include <stdio.h>
using namespace std;
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
int fr,bg,a[5000001],n,i,k;
long long sum=0;
deque<int> mydeque;
int main ()
{
fscanf(f,"%d",&n);
fscanf(f,"%d",&k);
for(i=1;i<=n;i++)
fscanf(f,"%d",&a[i]);
for(i=1;i<=n;i++)
{
while(!mydeque.empty()&&a[i]<=a[mydeque.back()]) mydeque.pop_back();
mydeque.push_back(i);
if(mydeque.front()==i-k) mydeque.pop_front();
if(i>=k) sum+=a[mydeque.front()];
}
fprintf(g,"%lld",sum);
fclose(g);
return 0;
}