무거운 블록

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

nn개의 블록이 한 줄로 세워져 있고, 왼쪽부터 차례로 놓여 있다. 각 블록의 무게는 서로 다른 양의 정수이다.

세워져 있는 블록 하나를 왼쪽이나 오른쪽으로 밀면 그 블록이 넘어진다. 넘어짐은 도미노처럼 민 방향으로 퍼지며, 민 블록보다 가벼운 블록을 연속으로 넘어뜨린다. 민 블록보다 무거운 블록을 만나면(그 무거운 블록은 넘어지지 않고 그대로 서 있다) 또는 이미 넘어진 자리에 도달하면 거기서 멈춘다. 민 블록 자신은 항상 넘어진다.

한 번의 밀기는 서 있는 블록 하나를 한 방향으로 미는 것이다. 모든 블록을 넘어뜨리는 데 필요한 최소 밀기 횟수를 구하여라.

입력

첫 번째 줄에 블록의 개수 nn이 주어진다 (1n1061 \le n \le 10^6).

두 번째 줄에 왼쪽부터 차례로 각 블록의 무게를 나타내는 서로 다른 정수 nn개가 주어지며, 각 값은 11 이상 10910^9 이하이다.

출력

모든 블록을 넘어뜨리는 데 필요한 최소 밀기 횟수를 한 줄에 출력한다.