Pagini recente » Cod sursa (job #2509516) | Cod sursa (job #751110) | Cod sursa (job #189457) | Cod sursa (job #3245604) | Cod sursa (job #575010)
Cod sursa(job #575010)
#include <stdio.h>
#include <deque>
#include <stdlib.h>
using namespace std;
FILE *f=fopen ("deque.in", "r");
FILE *g=fopen ("deque.out", "w");
int v[5000001],i,n,k;
long long S;
deque <int> dq;
int main() {
fscanf (f, "%d%d", &n,&k);
for (i=1;i<=n;++i)
{
fscanf (f, "%d", &v[i]);
while (!dq.empty() && v[i]<=v[dq.back()] )
dq.pop_back();
dq.push_back(i);
if (i>=k)
S+=v[dq.front()];
if (dq.front()==i-k+1)
dq.pop_front();
}
fprintf (g, "%lld", S);
return 0;
}