Pagini recente » Cod sursa (job #3336687) | Cod sursa (job #3311105) | Cod sursa (job #549636) | Cod sursa (job #1267625) | Cod sursa (job #3316330)
#include <bits/stdc++.h>
using namespace std;
#define int long long
ifstream in ("deque.in");
ofstream out ("deque.out");
int d[5000001];
int v[5000001];
signed main()
{
int n,s=0,k,spate=0,prim=0;
in >> n >> k;
for (int i=1; i<=n; i++){
in >> v[i];
}
/*for (int i=1; i<=n; i++){
if (d.empty()){
d.push_back(v[i]);
} else {
if (d.back()>v[i]){
d.pop_back;
}
}
}*/
for (int i=1; i<=n; i++)
{
///cat mai am in deque si daca ultimu e mai mic decat noul nr
while (prim<=spate && v[i]<=v[d[spate]]){
spate--;
}
d[++spate]=i;
if (d[prim]==i-k){
prim++;
}
if (i>=k) {
s+=v[d[prim]];
}
}
out << s;
return 0;
}