아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

멋진 전망

면접 대비

시간 제한1초메모리 제한1024 MB

요약
각 건물 i에서, i로부터의 거리가 |i-j| 이하인 어떤 건물도 Hj보다 높지 않은 건물 j의 개수를 센다.
난이도

보통10점 중 6점

유형
스택, 배열, 분할 정복, 이분 탐색
정답자
아직 제출이 없습니다

문제

Shiny City는 아름다운 도시로, 세 가지로 유명하다. 길이 하나뿐이라는 점, 모든 건물의 높이가 서로 다르다는 점, 그리고 그 건물들 꼭대기에서 보이는 멋진 전망이다.

팬데믹이 시작된 뒤로 Shiny City를 찾는 관광객 수는 크게 줄었다. 당신은 멋진 블로그를 써서 관광객을 더 끌어들이고, 사랑스럽지만 몹시 비효율적인 이 도시가 재정적으로 파멸하는 것을 막기로 마음먹었다. 안타깝게도 블로그에는 아직 빠진 정보가 있다.

Shiny City에는 N개의 건물이 있고, i번째 건물은 위치 i로 식별된다. 건물 i에서 건물 j로 가는 데는 |i − j|분이 걸린다. 각 건물의 높이 Hi는 서로 다르고, 건물이 높을수록 꼭대기에서 보이는 전망이 좋다.

어떤 건물에 있을 때, 전망이 더 좋은 다른 건물로 가는 것이 가치 있을 수 있다. 이동 비용 때문에, 더 많은 시간을 들이지 않고 도달할 수 있는 더 높은 건물이 있다면 그 건물로 가는 것은 가치가 없다.

형식적으로, 건물 i에서 다른 건물 j로 가는 것은 |i − k| ≤ |i − j|이고 Hj < Hk인 k가 존재하지 않을 때 가치 있다고 한다. k는 i와 같을 수 있다.

당신은 블로그에 각 건물마다 그곳에서 가치 있는 다른 건물이 몇 개인지 쓰려고 한다. 이 정보를 모아야 한다. 그렇지 않으면 Shiny City는 영원히 파멸할 것이다.

입력

첫 번째 줄에는 정수 N (1 ≤ N ≤ 105)이 주어지는데, 이는 Shiny City의 건물 수이다. 두 번째 줄에는 N개의 서로 다른 정수 H1, H2, . . . , HN (1 ≤ Hi ≤ 109, i = 1, 2, . . . , N)이 주어지는데, Hi는 건물 i의 높이이다.

출력

한 줄에 N개의 정수를 출력한다. i번째 정수는 건물 i에서 가치 있는 건물의 수이다.

예제1

  1. 예제 1

    입력
    10
    23 20 7 30 43 70 5 42 67 10
    
    예상 출력
    3 4 3 2 1 0 1 2 1 2