Pagini recente » Cod sursa (job #3255327) | Cod sursa (job #1564760) | Cod sursa (job #1687161) | Cod sursa (job #246745) | Cod sursa (job #1008788)
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
#define baza 10
#define MAX 5000100
typedef long long int lli;
deque <pair <lli, lli> > coada;
void insert(int a, int b)
{
coada.push_back(make_pair(a,b));
}
lli a[MAX];
int main()
{
int n,k, sum=0, i;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>a[i];
}
for(i=1;i<=n;i++)
{
if(!coada.empty())
{
while(coada.back().first>=a[i])
{
coada.pop_back();
}
}
insert(a[i],i);
if(coada.front().second<=i-k)
{
coada.pop_front();
}
if(i>=k)
sum+=coada.front().first;
}
fout<<sum;
return 0;
}