Pagini recente » Cod sursa (job #897306) | Cod sursa (job #3140915) | Cod sursa (job #2967861) | Cod sursa (job #2139135) | Cod sursa (job #1320359)
#include<fstream>
#include<deque>
#include<utility>
using namespace std;
typedef int64_t var;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct Elem {
int v, i;
Elem(var a, var b) {
v = a; i = b;
}
};
deque <Elem> Q;
int main() {
var n, k, i, x;
fin>>n>>k;
for(i=1; i<=k; i++) {
fin>>x;
while(!Q.empty() && x < Q.back().v) {
Q.pop_back();
}
Q.push_back(Elem(x, i));
}
var sum = Q.front().v;
for(; i<=n; i++) {
if(Q.front().i == i-k)
Q.pop_front();
fin>>x;
while(!Q.empty() && x < Q.back().v) {
Q.pop_back();
}
Q.push_back(Elem(x, i));
sum += Q.front().v;
}
fout<<sum;
return 0;
}