Pagini recente » Cod sursa (job #1500205) | Cod sursa (job #1430567) | Cod sursa (job #1719693) | Cod sursa (job #1826158) | Cod sursa (job #3312551)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
deque<pair<int,int>>dq;
int main()
{
int n,k,x;
fin>>n>>k;
fin>>x;
dq.push_back({x,1});
for(int i=2; i<=k; i++)
{
fin>>x;
while(!dq.empty() && x<=dq.back().first)
dq.pop_back();
dq.push_back({x,i});
}
long long sum=dq.front().first;
//cout<<dq.front().first<<" "<<dq.back().first<<endl;
for(int i=k+1;i<=n;i++)
{
fin>>x;
while(!dq.empty() && i-dq.front().second>=k)
dq.pop_front();
while(!dq.empty() && x<=dq.back().first)
dq.pop_back();
dq.push_back({x,i});
sum+=dq.front().first;
//cout<<dq.front().first<<" "<<dq.back().first<<endl;
}
fout<<sum;
return 0;
}