Pagini recente » Borderou de evaluare (job #3367831) | Borderou de evaluare (job #3368789) | Borderou de evaluare (job #3367874) | Cod sursa (job #3366862) | Cod sursa (job #3368792)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream cin ("deque.in");
ofstream cout ("deque.out");
int main ()
{
int n,k;
cin >> n >> k;
deque<int> dq;
vector <int> rez(n+1);
vector<int> v(n+1);
for (int i=1;i<=n;++i)
{
cin >> v[i];
}
for (int i=1;i<=n;++i)
{
while (!dq.empty() && v[dq.back()]>=v[i])
dq.pop_back();
dq.push_back(i);
while (!dq.empty() && dq.front()<=i-k)
dq.pop_front();
rez[i]=v[dq.front()];
}
long long s=0;
for (int i=1;i<=n;++i)
{
if (i>=k)
s+=rez[i];
}
cout << s;
}