Pagini recente » Cod sursa (job #270991) | Cod sursa (job #2139839) | Cod sursa (job #713629) | Cod sursa (job #2274625) | Cod sursa (job #1538643)
#include <fstream>
#define NMax 5000010
#define INF 10000010
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
int num, len, val, vals[NMax], deque[NMax], front, back, realPos = 1;
long long sMin;
int main()
{
f >> num >> len;
front = 1, back = 0;
vals[0] = -INF;
for (int i = 1; i <= num; i++) {
f >> vals[i];
while (front <= back && vals[deque[back]] >= vals[i])
back--;
deque[++back] = i;
if (deque[back] - realPos + 1 >= len) {
realPos++;
sMin += vals[deque[front]];
if (realPos > deque[front])
front++;
}
}
g << sMin;
return 0;
}