Pagini recente » Cod sursa (job #668406) | Cod sursa (job #2349668) | Cod sursa (job #2052341) | Cod sursa (job #1423721) | Cod sursa (job #1309065)
#include <cstdio>
#include <deque>
using namespace std;
long a[5000001],n,k,i;
long long S;
deque <int> deq;
int main()
{FILE *f1 = fopen("deque.in","r");
FILE *f2 = fopen("deque.out","w");
fscanf(f1,"%ld%ld",&n,&k);
for (i=1;i<=n;i++) fscanf(f1,"%ld",&a[i]);
S=0;
for (i=1;i<=n;i++)
{while (!deq.empty() && a[i]<=a[deq.back()]) deq.pop_back();
deq.push_back(i);
if (deq.front()==i-k) deq.pop_front();
if (i>=k) S+=a[deq.front()];
}
fprintf(f2,"%lld",S);
fclose(f1);
fclose(f2);
return 0;
}
//Challenges are what make life interesting and overcoming them is what makes life meaningful.