Pagini recente » Cod sursa (job #685492) | Cod sursa (job #1801187) | Cod sursa (job #2540891) | Cod sursa (job #1716534) | Cod sursa (job #598184)
Cod sursa(job #598184)
#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) {
if(v[st] == minPoz) ++st;
return v[dq[st]];
}
int main() {
int 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);
}
g << sum << '\n';
g.close();
return 0;
}