Pagini recente » Cod sursa (job #279336) | Cod sursa (job #2708018) | Cod sursa (job #965127) | Cod sursa (job #2411652) | Cod sursa (job #3231159)
// #include <iostream>
#include <fstream>
using namespace std;
ifstream cin("deque.in");
ofstream cout("deque.out");
int n, k, ans;
int v[100002], dq[100002];
int stq, drq;
int 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;
}