Pagini recente » Cod sursa (job #953108) | Cod sursa (job #2204105) | Cod sursa (job #2546786) | Cod sursa (job #2396835) | Cod sursa (job #3231161)
// #include <iostream>
#include <fstream>
// #define int long long
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
long long n, k, ans;
int v[5000005], dq[5000005];
long long stq, drq;
signed main()
{
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> v[i];
dq[++stq] = 1;
drq++;
for(int i = 2; i <= k; i++)
{
while(drq >= stq && v[i] <= v[dq[drq]])
drq--;
dq[++drq] = i;
}
/*
for(int j = stq; j <= drq; j++)
cout << dq[j] << ' ';
cout << '\n';
*/
// cout << v[dq[stq]] << ' ';
ans += v[dq[stq]];
for(int i = 2; i <= n - k + 1; i++)
{
if(dq[stq] == i - 1)
stq++;
int elem = i + k - 1;
while(drq >= stq && v[elem] <= v[dq[drq]])
drq--;
dq[++drq] = elem;
/*
for(int j = stq; j <= drq; j++)
cout << dq[j] << ' ';
cout << '\n';
*/
// cout << v[dq[stq]] << ' ';
ans += v[dq[stq]];
}
cout << ans << '\n';
return 0;
}