도미노 (Large)
시간 제한1초메모리 제한512 MB
각 도미노를 한 방향으로 넘어뜨리는 연쇄를 고려해 모든 도미노를 쓰러뜨리는 최소 횟수를 구한다.
문제
수직선 위에 도미노 개가 서 있다. 번째 도미노는 위치 에 높이 로 서 있고, 같은 위치에 도미노가 둘 이상 놓이는 경우는 없다.
도미노 하나를 골라 왼쪽이나 오른쪽으로 밀 수 있다. 위치가 이고 높이가 인 도미노를 왼쪽으로 밀면 인 위치 에 있는 도미노가 모두 왼쪽으로 넘어지고, 오른쪽으로 밀면 인 위치 에 있는 도미노가 모두 오른쪽으로 넘어진다. 이렇게 넘어진 도미노도 같은 방향으로 쓰러지면서 자기 범위에 들어오는 도미노를 다시 넘어뜨린다. 연쇄는 새로 넘어지는 도미노가 없을 때까지 이어진다.
한 번 밀 때마다 도미노 하나와 방향 하나를 정한다. 도미노 개를 모두 넘어뜨리는 데 필요한 최소 밀기 횟수를 구하여라.
입력
첫째 줄에 이 주어진다. ()
둘째 줄부터 개의 줄에 도미노 하나의 위치 와 높이 가 공백으로 구분되어 주어진다. ()
도미노가 위치 순서대로 주어진다는 보장은 없다.
출력
도미노를 모두 넘어뜨리는 데 필요한 최소 밀기 횟수를 첫째 줄에 출력한다.