Pagini recente » Cod sursa (job #3128840) | Cod sursa (job #2294328) | Cod sursa (job #1603356) | Cod sursa (job #741556) | Cod sursa (job #574996)
Cod sursa(job #574996)
#include <stdio.h>
#include <deque>
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;
void adaugare(int x) {
while (!dq.empty() && x<=v[dq.back()] )
dq.pop_back();
dq.push_back(i);
}
int main() {
fscanf (f, "%d%d", &n,&k);
for (i=1;i<=n;++i)
{
fscanf (f, "%d", &v[i]);
adaugare(v[i]);
if (i>=k)
S+=v[dq.front()];
if (dq.front()==i-k)
dq.pop_front();
}
fprintf (g, "%lld", S);
return 0;
}