Pagini recente » Cod sursa (job #1818462) | Cod sursa (job #2923285) | Cod sursa (job #1180301) | Cod sursa (job #2168708) | Cod sursa (job #1350202)
#include <cstdio>
#include <deque>
using namespace std;
const int MAX_N = 5000000;
FILE *in, *out;
deque<int> dq;
int v[MAX_N];
int main()
{
in = fopen("deque.in","r");
out = fopen("deque.out", "w");
int n, k;
int i;
int sum;
fscanf(in, "%d%d", &n, &k);
for(i = 0; i < n; i++)
fscanf(in, "%d", &v[i]);
i = 0;
while(i < k)
{
while((!dq.empty()) && (v[dq.back()] > v[i])) dq.pop_back();
dq.push_back(i);
i++;
}
sum = v[dq.front()];
for(int i = k; i < n; i++)
{
if((!dq.empty()) && (dq.front() <= i-k)) dq.pop_front();
while((!dq.empty()) && (v[dq.back()] > v[i])) dq.pop_back();
dq.push_back(i);
sum += v[dq.front()];
}
fprintf(out, "%d", sum);
fclose(in);
fclose(out);
return 0;
}