Pagini recente » Cod sursa (job #2171446) | Cod sursa (job #1520236) | Cod sursa (job #542274) | Cod sursa (job #1783071) | Cod sursa (job #1621948)
#include <cstdio>
using namespace std;
int v[5000002], deq[5000002];
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
int n, k;
scanf("%d%d", &n, &k);
long long sol = 0;
int left = 1, right = 0;
for (int i = 1; i < k; i++)
{
scanf("%d", &v[i]);
while (v[deq[right]] > v[i] && right > 0)
right--;
deq[++right] = i;
}
for (int i = k, x; i <= n; i++)
{
scanf("%d", &v[i]);
while (v[deq[right]] > v[i] && right > left-1)
right--;
deq[++right] = i;
if (i - deq[left] == k)
left++;
sol += v[deq[left]];
}
printf("%lld\n", sol);
return 0;
}