Pagini recente » Cod sursa (job #2223551) | Cod sursa (job #658215) | Cod sursa (job #2863360) | Cod sursa (job #2268327) | Cod sursa (job #2766202)
#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<int, int> > q;
int n, k, x;
long long 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;
}