Pagini recente » Cod sursa (job #2270512) | Cod sursa (job #84365) | Cod sursa (job #1887193) | Cod sursa (job #412806) | Cod sursa (job #816026)
Cod sursa(job #816026)
#include <cstdio>
#include <deque>
using namespace std;
FILE *f,*g;
int a[5000001],k,n,front,back,i;
deque <int> mdeque;
long long s;
int main()
{f=fopen ("deque.in","r");
g=fopen ("deque.out","w");
fscanf (f,"%d %d",&n,&k);
for (i=1;i<=n;i++) fscanf (f,"%d",&a[i]);
for (i=1;i<=n;i++)
{
while (!mdeque.empty() && a[i]<a[mdeque.back()]) mdeque.pop_back();
mdeque.push_back(i);
if (mdeque.front()==i-k) mdeque.pop_front();
if (i>=k) s+=a[mdeque.front()];
}
fprintf (g,"%lld",s);
return 0;
}