Pagini recente » Cod sursa (job #1318834) | Cod sursa (job #1052742) | Cod sursa (job #918517) | Cod sursa (job #967824) | Cod sursa (job #3177197)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
struct Deque{
deque<pair<int,int> > q;
void Insert(int x, int i)
{
while(!q.empty() && x < q.back().second)
{
q.pop_back();
}
q.push_back({i,x});
}
void Remove(int i)
{
if(q.front().first == i)
q.pop_front();
}
int minim()
{
return q.front().second;
}
} dq;
int32_t main()
{
int n,k,suma = 0;
fin>>n>>k;
for(int i=1; i<=k; i++)
{
int c; fin>>c;
dq.Insert(c,i);
}
suma += dq.minim();
for(int i = k+1; i<=n; i++)
{
int c; fin>>c;
dq.Insert(c,i);
dq.Remove(i-k);
suma += dq.minim();
}
fout<<suma;
return 0;
}