Pagini recente » Cod sursa (job #512160) | Cod sursa (job #1580892) | Cod sursa (job #797786) | Cod sursa (job #3240491) | Cod sursa (job #1324505)
#include <fstream>
#include <iostream>
using namespace std;
const int kNMax = 5000010;
int n, k, v[kNMax];
int dq[kNMax], fdq = 1 , bdq;
long long sol;
void Citire() {
ifstream in("deque.in");
in >> n >> k;
for (int i = 1; i <= n; ++i)
in >> v[i];
in.close();
}
void Solve() {
int i;
for (i = 1; i <= n; ++i) {
while (fdq <= bdq && v[i] <= v[dq[bdq]])
bdq--;
dq[++bdq] = i;
if (dq[fdq] == i-k)
fdq++;
if (i >= k)
sol += v[dq[fdq]];
}
}
void Afisare() {
ofstream out("deque.out");
out << sol << '\n';
out.close();
}
int main () {
Citire();
Solve();
Afisare();
return 0;
}