Pagini recente » Cod sursa (job #1757477) | Cod sursa (job #1748255) | Cod sursa (job #1723284) | Cod sursa (job #2504791) | Cod sursa (job #1176072)
#include <fstream>
#include <deque>
using namespace std;
deque<int> deck;
int v[5000005],n,k,i;
long long sol;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
for (i=1;i<=n;i++)
{
while(!deck.empty())
{
if(deck.front()+k-1<i) deck.pop_front();
else break;
}
while(!deck.empty())
{
if(v[deck.back()]>=v[i]) deck.pop_back();
else break;
}
deck.push_back(i);
if (i>=k)
sol+=v[deck.front()];
}
fout<<sol;
}