Pagini recente » Cod sursa (job #483697) | Cod sursa (job #575727) | Cod sursa (job #1631973) | Cod sursa (job #675657) | Cod sursa (job #733216)
Cod sursa(job #733216)
#include <cstdio>
#include <deque>
using namespace std;
const int nmax = 5000001;
int n, k;
int a[nmax];
long long s=0;
deque<int> dq;
void citeste(){
scanf("%d %d\n", &n, &k);
for(int i=1; i<=n; ++i){
scanf("%d\n", &a[i]);
}
}
void rezolva(){
for(int i=1; i<=n; ++i){
while (!dq.empty() && a[i] <= a[ dq.back() ]) dq.pop_back();
dq.push_back(i);
if (i-k == dq.front()) dq.pop_front();
if (i >= k) s += a[ dq.front() ];
}
}
void scrie(){
printf("%lld", s);
}
int main(){
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
citeste();
rezolva();
scrie();
fclose(stdin);
fclose(stdout);
return 0;
}