Pagini recente » Cod sursa (job #868643) | Cod sursa (job #2803313) | Cod sursa (job #1756039) | Cod sursa (job #649095) | Cod sursa (job #3123948)
#include <bits/stdc++.h>
unsigned int n, k, i;
std :: deque <unsigned int> dq;
std :: vector <int> v;
long long int x, S;
int main() {
std :: ios_base :: sync_with_stdio(0);
std :: ifstream fin("deque.in");
v.push_back(-1e9);
dq.push_back(0);
fin >> n >> k;
for (i = 1; i < k; ++ i) {
fin >> x;
v.push_back(x);
while (v[dq.back()] >= x)
dq.pop_back();
dq.push_back(i);
}
for (; i <= n; ++ i) {
fin >> x;
v.push_back(x);
if (i - dq[1] == k) {
dq.pop_front();
dq.front() = 0;
}
while (v[dq.back()] >= x)
dq.pop_back();
dq.push_back(i);
S += v[dq[1]];
}
fin.close();
std :: ofstream fout("deque.out");
fout << S;
fout.close();
return 0;
}