Pagini recente » Cod sursa (job #602075) | Cod sursa (job #748300) | Cod sursa (job #558404) | Cod sursa (job #927700) | Cod sursa (job #651865)
Cod sursa(job #651865)
#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;
}