Pagini recente » Cod sursa (job #1625155) | Cod sursa (job #1448845) | Cod sursa (job #3126548) | Cod sursa (job #1314740) | Cod sursa (job #2820425)
#include <fstream>
#include <deque>
#define ll long long
using namespace std;
ifstream cin ("deque.in");
ofstream cout ("deque.out");
ll n,m,i,a,sum=0;
deque <pair<ll,ll> > v;
int main()
{
cin>>n>>m;
for (i=1;i<=n;++i)
{
cin>>a;
if (!v.empty() && a<=v[0].first)
{
v.clear();
v.push_back({a,i});
if (i>=m) sum+=a;
}
else
{
while (!v.empty() && v.back().first>a) v.pop_back();
v.push_back({a,i});
if (i>=m)
{
while (v[0].second<=i-m) v.pop_front();
sum+=v[0].first;
}
}
}
cout<<sum;
return 0;
}