Pagini recente » Cod sursa (job #1102706) | Cod sursa (job #1237547) | Cod sursa (job #1420762) | Cod sursa (job #1011781) | Cod sursa (job #2888167)
#include <fstream>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int main()
{
long long n, k, i, st = 0, dr = -1, minim = 0;
f >> n >> k;
long long deqman[5000001];
long long v[5000001];
for(i = 0; i < n; i++)
f >> v[i];
for(i = 0; i < k; i++)
{
while(st <= dr && v[i] <= v[deqman[dr]])
dr--;
dr++;
deqman[dr] = i;
}
minim = minim + v[deqman[st]];
for(i = k; i < n; i++)
{
while(st <= dr && deqman[st] <= (i - k))
st++;
while(st <= dr && v[i] <= v[deqman[dr]])
dr--;
dr++;
deqman[dr] = i;
minim = minim + v[deqman[st]];
}
g << minim;
return 0;
}