Pagini recente » Cod sursa (job #878891) | Clasament dupa rating | Monitorul de evaluare | Cod sursa (job #1703946) | Cod sursa (job #1651043)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <deque>
#include <set>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
const int MAXN=5e6+5;
deque < int > deq;
int n,k,v[MAXN];
long long sum;
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++) fin>>v[i];
for(int i=1; i<=n; i++)
{
while( !deq.empty() && v[i]<=v[deq.back()] ) deq.pop_back();
deq.push_back(i);
if(i>=k)
{
sum+=v[deq.front()];
if( !deq.empty() && i-deq.front()>=k-1 ) deq.pop_front();
}
}
fout<<sum;
}