Pagini recente » Cod sursa (job #2242736) | Cod sursa (job #1098647) | Cod sursa (job #2760750) | Cod sursa (job #2900950) | Cod sursa (job #3199998)
#include <bits/stdc++.h>
#include <algorithm>
#include <cmath>
#include <climits>
#include <fstream>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <bitset>
#define ull unsigned long long
#define ll long long
#define elif else if
#define uint unsigned int
std::ifstream fin("deque.in");
std::ofstream fout("deque.in");
int x,a[5e6+1];
std::deque<ll> deck;
int main()
{
uint n,k;
fin >> n >> k;
for (uint i=1;i<=n;++i)
{
fin >> a[i];
}
for (uint i=1;i<=k;++i)
{
while (!deck.empty() && a[deck.back()]>=a[i])
deck.pop_back();
deck.push_back(i);
}
ll sum=a[deck.front()];
for (uint i=k+1;i<=n;++i)
{
uint left = i - k + 1;
while (!deck.empty() && a[deck.back()]>=a[i])
deck.pop_back();
if (!deck.empty() && deck.front() < left)
deck.pop_front();
deck.push_back(i);
sum+= a[deck.front()];
}
fout << sum;
return 0;
}