Pagini recente » Diferente pentru problema/logic intre reviziile 89 si 29 | Cod sursa (job #3151666) | Cod sursa (job #3150566) | Cod sursa (job #3151152) | Cod sursa (job #3163066)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
long long s;
int n,k,v[5000005];
deque <int> dq;
int main()
{
fin>>n>>k;
dq.push_back(1);
for(int i=1;i<=n;i++)
fin>>v[i];
for(int i=2;i<=n;i++)
{
while(dq.empty()==0 && v[i]<=v[dq.back()])
dq.pop_back();
dq.push_back(i);
if(i-dq.front()==k)
dq.pop_front();
if(i>=k)
s+=v[dq.front()];
}
fout<<s;
return 0;
}