Pagini recente » Cod sursa (job #1132923) | Cod sursa (job #786488) | Cod sursa (job #2232363) | Cod sursa (job #2252921) | Cod sursa (job #2540255)
#include <fstream>
#include <algorithm>
#define BAZA 256
using namespace std;
ifstream fin ("deque.in");
ofstream fout("deque.out");
int d[5000001], v[5000001];
int n, k, p, u, i;
long long sol;
int main () {
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
d[1] = 1; /// indicele primului element
p = 1;
u = 1;
for (i=2;i<=n;i++) {
/// elementul curent scoate din coada
while (p<=u && v[i] < v[ d[u] ])
u--;
d[++u] = i;
if (i-d[p] == k) /// varful cozii se indeparta cu mai mult de k (cu k+1) de ultimul elemet pus, i
p++;
if (i >= k)
sol += v[ d[p] ];
}
fout<<sol;
return 0;
}