Pagini recente » Cod sursa (job #1358690) | Cod sursa (job #2868493) | Cod sursa (job #130020) | Cod sursa (job #1507380) | Cod sursa (job #2269790)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n, k;
long long sum, x;
struct elem
{
int val, poz;
};
deque<elem> mydeck;
int main()
{
fin>>n>>k;
fin>>x;
mydeck.push_back(elem{});
mydeck.back().val=x;
mydeck.back().poz=1;
for(int i=2; i<=n; i++)
{
fin>>x;
for(int poz=mydeck.size()-1; i-mydeck[poz].poz<k && poz>=0; poz--)
{
if(x<mydeck[poz].val) mydeck[poz].val=x;
else break;
}
mydeck.push_back(elem{});
mydeck.back().poz=i;
mydeck.back().val=x;
}
while(mydeck.size()>=k)
{
sum+=mydeck.front().val;
mydeck.pop_front();
}
fout<<sum<<'\n';
return 0;
}