Pagini recente » Cod sursa (job #1223652) | Cod sursa (job #1999214) | Cod sursa (job #934439) | Cod sursa (job #2323707) | Cod sursa (job #1127145)
#include <fstream>
using namespace std;
const int mSz = 5000001;
int N, K;
int v[mSz], deque[mSz];
int front = 1, back = 0;
long long sum;
int main(int argc, char *argv[])
{
fstream in("deque.in", ios::in);
fstream out("deque.out", ios::out);
in >> N >> K;
for (int i = 1; i <= N; i++)
in >> v[i];
for (int i = 1; i <= N; i++)
{
while (front <= back && v[i] <= v[deque[back]]) {
back--;
}
deque[++back] = i;
if (deque[front] == i-K) {
front++;
}
if (i >= K) {
sum += v[deque[front]];
}
}
out << sum;
in.close();
out.close();
return 0;
}