페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4426

같은 길이 연속구간의 최댓값 구하기 1s 128MB

문제

여러분들은 길이 N의 수열 a1, a2, … an을 가지고 있다.

1이상 N이하의 길이 W가 주어졌을 때, 길이 W의 연속구간에 들어있는 수열의 원소 중, 가장 큰 값을 각각 출력하는 프로그램을 작성하라.

예를 들어 수열이 [6,3,1,-1,1,-2] 이고 W가 3이라면 다음 4개의 수를 출력한다.

[6,3,1],-1,1,-2 : 최댓값 à 6

6,[3,1,-1],1,-2 : 최댓값 à 3

6,3,[1,-1,1],-2 : 최댓값 à 1

6,3,1,[-1,1,-2] : 최댓값 à


입력

첫 줄의 수열의 길이 N(1≤N≤2,000,000)와 연속구간의 길이 W(1≤W≤N)이 주어진다.

둘째 줄에 N개의 각 수열의 원소 ai가 공백을 사이에 두고 각각 주어진다.

(-109 ≤ ai ≤ 109


출력

(N+1-W)개의 줄에 걸쳐 각 연속구간의 최댓값을 출력한다.

조금 더 엄밀히 말하자면, i번째 줄에는 연속구간 [ai,ai+1,…,ai+W-1]의 원소 중 최댓값을 출력하면 된다. 

 


예제

6 3

6 3 1 -1 1 -2
6

3
1
1

출처

ohjtgood

로그인해야 코드를 작성할 수 있어요.