Pagini recente » Cod sursa (job #253841) | Cod sursa (job #699637) | Cod sursa (job #3350363) | Cod sursa (job #2677291) | Cod sursa (job #2423598)
#include <bits/stdc++.h>
#define MAX 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long n,k,ans,x,A[MAX];
deque<long long> dQ;
int main(){
int i;
fin>>n>>k;
for(i=0;i<n;++i)
fin>>A[i];
for(i=0;i<k;++i){
while(!dQ.empty()&&dQ.back()>A[i])dQ.pop_back();
dQ.push_back(A[i]);
}
ans+=dQ.front();
for(i=k;i<n;++i){
while(!dQ.empty()&&dQ.back()>A[i])
dQ.pop_back();
dQ.push_back(A[i]);
//daca elementul a iesit din multime
if(dQ.front()==A[i-k])
dQ.pop_front();
ans+=dQ.front();
}
fout<<ans<<'\n';
return 0;
}