Pagini recente » Cod sursa (job #1704678) | Cod sursa (job #562837) | Cod sursa (job #1277380) | Cod sursa (job #1958411) | Cod sursa (job #1687366)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int MAXN = 5 * 1e6 + 7;
int N , K , A[MAXN];
pair<int, int>D[MAXN];
void citire()
{
fin >> N >> K;
for(int i = 1 ; i <= N ; ++i)
fin >> A[i];
}
void solve()
{
int st = 1, dr = 0;
long long ans(0);
for(int i = 1 ; i <=N; ++i)
{
while(st<=dr && D[dr].second >= A[i])
--dr;
D[++dr] = make_pair(i, A[i]);
if(D[st].first == i-K) st++;
if(i >= K)
ans += D[st].second;
}
fout << ans << '\n';
}
int main()
{
citire();
solve();
}