Pagini recente » Cod sursa (job #2536725) | Cod sursa (job #2414982) | Cod sursa (job #3286588) | Cod sursa (job #726202) | Cod sursa (job #2569460)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int a[5000009];
int Deque[5000008];
int n,k;
void Read()
{
int i,j;
int Front =0, Back = 0;
long long total = 0;
fin>>n>>k;
for(i = 1; i<=n; ++i)
fin>>a[i];
for(i = 1; i<=n; ++i)
{
while( Front <= Back && a[i] <= a[ Deque[Back] ] )
Back--;
Deque[++Back] = i;
if( Deque[Front] <= i-k )
Front++;
if( i>=k) total += a[ Deque[Front]];
}
fout<<total;
}
int main()
{
Read();
return 0;
}