Pagini recente » Cod sursa (job #650534) | Cod sursa (job #909874) | Cod sursa (job #1240251) | Cod sursa (job #3152737) | Cod sursa (job #2673904)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int Nmax = 5000500;
long long sum = 0;
int n,k,i;
int a[Nmax];
deque <int> coada;
int main (){
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>a[i];
for (i=1;i<=k;i++){
while (!coada.empty()){
if (a[i]>=coada.back())
break;
coada.pop_back();
}
coada.push_back(a[i]);
}
sum+=coada.front();
for (i=k+1;i<=n;i++){
while (!coada.empty()){
if (a[i]>=coada.back())
break;
coada.pop_back();
}
coada.push_back(a[i]);
if (coada.front()==a[i-k])
coada.pop_front();
sum+=coada.front();
}
fout<<sum;
}