Pagini recente » Cod sursa (job #188283) | Cod sursa (job #1662000) | Cod sursa (job #1043762) | Cod sursa (job #3269598) | Cod sursa (job #1088286)
#include <cstdio>
using namespace std;
int qu[5000100];
int poz[5000100];
int main()
{
freopen( "deque.in", "r", stdin );
freopen( "deque.out", "w", stdout );
int n, k, i;
int dummy;
long long s = 0;
scanf( "%d %d\n", &n, &k );
int head = 1, rear = 0;
for ( i = 1; i < k; ++i )
{
scanf( "%d\n", &dummy );
while ( ( head <= rear ) && ( qu[rear] > dummy ) )
--rear;
qu[++rear] = dummy;
poz[rear] = i;
}
for ( i = k; i <= n; ++i )
{
scanf( "%d\n", &dummy );
while ( ( head <= rear ) && ( qu[rear] > dummy ) )
--rear;
qu[++rear] = dummy;
poz[rear] = i;
while ( poz[head] <= i - k )
++head;
s += qu[head];
}
printf( "%lld\n", s );
fclose( stdin );
fclose( stdout );
return 0;
}