Pagini recente » Cod sursa (job #2029582) | Cod sursa (job #2868972) | Cod sursa (job #182928) | Cod sursa (job #1142305) | Cod sursa (job #1451956)
#include <bits/stdc++.h>
using namespace std;
typedef int var;
ifstream fin("deque.in");
ofstream fout("deque.out");
var V[5000002];
auto cmp = [](var a, var b) { return V[a] > V[b]; };
priority_queue< var, vector<var>, decltype(cmp) > Heap(cmp);
#define DIM 100000
char buff[DIM];
var poz;
void Read(var &a) {
#define adv() if(++poz == DIM) fin.read(buff, DIM), poz=0;
while(!isdigit(buff[poz]) && buff[poz] != '-')
adv();
bool sgn = 0;
if(buff[poz] =='-') {
sgn = 1;
adv();
}
a = 0;
while(isdigit(buff[poz])) {
a = a * 10 + buff[poz] - '0';
adv();
}
if(sgn) a = -a;
}
int main() {
var n, k;
Read(n); Read(k);
for(var i=1; i<k; i++) {
Read(V[i]);
Heap.push(i);
}
int64_t sum = 0;
for(var i=k; i<=n; i++) {
Read(V[i]);
Heap.push(i);
sum += V[Heap.top()];
while(Heap.top() <= i-k+1)
Heap.pop();
}
fout<<sum;
return 0;
}