Pagini recente » Cod sursa (job #3246805) | Cod sursa (job #962421) | Cod sursa (job #957595) | Cod sursa (job #1096844) | Cod sursa (job #531271)
Cod sursa(job #531271)
#include <stdio.h>
using namespace std;
#define nmax 500005
int vec[nmax], dq[nmax];
int N, K;
int main ()
{
freopen("secventa.in","r",stdin);
scanf("%d%d", &N, &K);
int i;
for (i = 1; i <= N; ++i) scanf("%d", &vec[i]);
int st = 1, dr = 1, maxim = -30005, a, b;
dq[1] = vec[1];
for (i = 2; i <= N; ++i)
{
while (st <= dr && dq[dr]>vec[i]) dr--;
dq[++dr] = vec[i];
if (i > K && dq[st] == vec[i-K]) st++;
if (i >= K)
if ( dq[st] > maxim )
{
maxim = dq[st];
a = i-K+1;
b = i;
}
}
freopen("secventa.out","w",stdout);
for (i = a; i <= b; ++i) printf("%d ", vec[i]);
return 0;
}