Pagini recente » Cod sursa (job #2235288) | Cod sursa (job #1334966) | Cod sursa (job #357834) | Cod sursa (job #2339514) | Cod sursa (job #859843)
Cod sursa(job #859843)
#include<cstdio>
#include<deque>
using namespace std;
FILE *f=fopen("deque.in","r");
FILE *g=fopen("deque.out","w");
deque <int> q;
int n,k,a[5001000];
long long sum;
int main()
{int i;
fscanf(f,"%d%d",&n,&k);
for (i=1;i<=n;++i)
fscanf(f,"%d",&a[i]);
for (i=1;i<=n;++i)
{while (!q.empty() && a[i]<=a[q.back()]) q.pop_back();
q.push_back(i);
if (q.front()==i-k) q.pop_front();
if (i>=k) sum+=a[q.front()];
}
fprintf(g,"%I64d\n",sum);
return 0;
}