Pagini recente » Cod sursa (job #2749301) | Cod sursa (job #1975829) | Cod sursa (job #2796304) | Cod sursa (job #2827911) | Cod sursa (job #1611101)
#include <cstdio>
using namespace std;
int v[5000001];
int deq[5000001];
int main()
{
FILE *fin = fopen("deque.in", "r");
FILE *fout = fopen("deque.out", "w");
long long int suma = 0;
int n, k, fr, ba;
fscanf(fin, "%d%d", &n, &k);
fr = 1;
ba = 0;
for(int i = 1; i <= n; ++i){
fscanf(fin, "%d", &v[i]);
while(ba >= fr && v[i] <= v[deq[ba]])
ba--;
deq[++ba] = i;
if(i >= k)
suma += 1LL * v[deq[fr]];
if(i - k + 1 >= deq[fr])
fr++;
}
fprintf(fout, "%lld", suma);
return 0;
}