Pagini recente » Cod sursa (job #2459094) | Cod sursa (job #820408) | Cod sursa (job #1043848) | Cod sursa (job #1895164) | 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;
}