Pagini recente » Cod sursa (job #70143) | Cod sursa (job #1362786) | Cod sursa (job #556752) | Cod sursa (job #2292812) | Cod sursa (job #598189)
Cod sursa(job #598189)
#include<fstream>
using namespace std;
#define INF 0x3f3f3f3f
int dq[5000010], v[5000010], n, k, st = 1, fn = 0;
void insert(int poz) {
while(st <= fn && v[dq[fn]] > v[poz]) --fn;
dq[++fn] = poz;
}
int getMin(int minPoz) {
while(st <= fn && dq[st] < minPoz) ++st;
return v[dq[st]];
}
int main() {
long long i, sum = 0;
ifstream f("deque.in");
ofstream g("deque.out");
f >> n >> k;
for(i = 1; i <= n; ++i)
f >> v[i];
for(i = 1; i <= k - 1; ++i)
insert(i);
for(i = k; i <= n; ++i) {
insert(i);
sum += getMin(i - k + 1);
}
g << sum << '\n';
g.close();
return 0;
}