Pagini recente » Cod sursa (job #2940442) | Cod sursa (job #2152099) | Cod sursa (job #2426648) | Cod sursa (job #1265394) | Cod sursa (job #2766201)
#include <iostream>
#include <fstream>
#include <deque>
#define st first
#define dr second
using namespace std;
ifstream fin ("deque.in");
ofstream fout ("deque.out");
deque < pair<long long, int> > q;
long long n, k, x, sol;
int main (){
fin>>n>>k>>x;
if(k == 1){
sol+=x;
for(int i=2; i<=n; i++){
fin>>x;
sol += x;
}
fout<<sol;
}else{
q.push_back({x, 1});
for(int i=2; i<=n; i++){
fin>>x;
while(!q.empty() && x < q.back().st)
q.pop_back();
q.push_back({x, i});
if(i >= k){
if(i - q.front().dr == k)
q.pop_front();
sol += q.front().st;
}
}
fout<<sol;
}
return 0;
}