Pagini recente » Cod sursa (job #2926685) | Cod sursa (job #40356) | Cod sursa (job #2117530) | Cod sursa (job #1713431) | Cod sursa (job #3128253)
#include <fstream>
int main() {
std::ifstream fin("deque.in");
std::ofstream fout("deque.out");
int n, k;
long long s = 0;
int* v = new int[5000000] {0};
int* dq = new int[5000000] {0};
int begin = 1, end = 0;
fin >> n >> k;
for (int i = 0; i < n; ++i)
fin >> v[i];
for (int i = 0; i < n; ++i) {
while (begin <= end and v[i] <= v[dq[end]])
--end;
++end;
dq[end] = i;
if (dq[begin] == i - k)
++begin;
if (i + 1 >= k)
s += v[dq[begin]];
}
fout << s;
delete[] v;
delete[] dq;
return 0;
}