Pagini recente » Cod sursa (job #3139371) | Cod sursa (job #3213810) | Cod sursa (job #1461155) | Cod sursa (job #3248407) | Cod sursa (job #3004310)
#include <fstream>
#include <deque>
using namespace std;
#define INFILE "deque.in"
#define OUTFILE "deque.out"
#define cin fin
#define cout fout
#define ll long long
#define endl '\n'
#define F first
#define S second
ifstream fin (INFILE);
ofstream fout (OUTFILE);
int n, k, aux;
pair<int, int> auxiliar;
deque< pair<int, int> > dq;
void solve(){
cin>>n>>k;
ll x;
for(int i=1;i<=k;i++){
cin>>x;
while(dq.size()&&x<=dq.back().F)dq.pop_back();
auxiliar.first = x;
auxiliar.second = i;
dq.push_back(auxiliar);
}
ll sum=dq.front().F;
for(int i=k+1;i<=n;i++){
if(i-k>=dq.front().S)dq.pop_front();
cin>>x;
while(dq.size()&&x<=dq.back().F)dq.pop_back();
auxiliar.first = x;
auxiliar.second = i;
dq.push_back(auxiliar);
sum+=dq.front().F;
}
cout<<sum<<endl;
}
int main(){
solve();
return 0;
}