Pagini recente » Cod sursa (job #753752) | Cod sursa (job #3237371) | Cod sursa (job #2246202) | Cod sursa (job #2387254) | Cod sursa (job #2423604)
#include <bits/stdc++.h>
#define MAX 5000005
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,x,A[MAX];
long long ans;
deque<int> 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;
}