풍선 맞추기

왼쪽부터 풍선을 순서대로 맞추며 맞힐 때마다 한 칸씩 내려가는 화살을 가장 적게 쏩니다.

보통4그리디해시맵면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

큰 방 안에 풍선 NN개가 왼쪽에서 오른쪽으로 일렬로 떠 있다. 진솔이는 활 쏘기를 좋아해서 화살을 늘 왼쪽에서 오른쪽으로 쏘고, 쏘는 높이는 마음대로 고른다.

화살은 고른 높이 HH를 그대로 유지한 채 오른쪽으로 날아가다가, 높이가 HH인 풍선을 처음 만나면 그 풍선을 터뜨린다. 터진 풍선은 사라지고, 화살은 높이가 1 낮아진 H1H-1에서 계속 오른쪽으로 날아간다.

풍선을 하나도 남기지 않고 모두 터뜨리려고 한다. 필요한 화살의 최소 개수를 구하라.

입력

첫째 줄에 정수 NN이 주어진다.

둘째 줄에 풍선 NN개의 높이 H1,H2,,HNH_1, H_2, \dots, H_N이 왼쪽에서 오른쪽 순서로 주어진다. HiH_i는 왼쪽에서 ii번째 풍선의 높이다.

  • 1N1061 \le N \le 10^6
  • 1Hi1061 \le H_i \le 10^6

출력

첫째 줄에 모든 풍선을 터뜨리는 데 필요한 화살의 최소 개수를 출력한다.

힌트

첫 번째 예제에서는 화살 하나로 높이 5, 4, 3인 풍선을 차례로 터뜨리고, 다른 화살 하나로 높이 2, 1인 풍선을 터뜨리면 된다. 그래서 화살 2개면 충분하다.