Pagini recente » Cod sursa (job #2090748) | Cod sursa (job #1838989) | Cod sursa (job #135426) | Cod sursa (job #2504841) | Cod sursa (job #343715)
Cod sursa(job #343715)
#include <cstdio>
#define DIM 5000001
int i, n, k, p ,u, a[DIM], deque[DIM];
long long s;
using namespace std;
int main()
{
freopen ("deque.in","r",stdin);
freopen ("deque.out","w",stdout);
scanf ("%d%d\n",&n,&k);
p=1; // deque empty
for ( i = 1; i <= n; ++i ) scanf ("%d\n",&a[i]);
for ( i = 1; i <= n; ++i )
{
while ( p <= u && a[i] <= a[ deque[u] ] ) u--;
deque[ ++u ] = i;
if ( deque [ p ] == i-k) ++p; //we no longer need him
if ( i >= k ) s += a[ deque[p] ];
}
printf ("%lld\n",s);
return 0;
}