더 어려운 퍼즐
시간 제한2초메모리 제한512 MB
각 플랫폼 i는 i+1부터 i+a_i까지 이동할 수 있습니다. 1번에서 n번까지 가는 경로가 하나만 남도록 바꿀 a_i의 최소 개수를 구합니다.
문제
Gildong은 퍼즐 게임을 만들고 있다. 퍼즐에는 1번부터 번까지 번호가 붙은 개의 발판이 있다. 플레이어는 캐릭터를 발판 위에 세워 조종하고, 목표는 캐릭터를 1번 발판에서 번 발판까지 옮기는 것이다.
번 발판에는 정수 가 적혀 있다 (). 캐릭터가 번 발판에 있으면 플레이어는 를 만족하는 번 발판 중 아무 곳으로나 캐릭터를 옮길 수 있다. 캐릭터가 인 번 발판에 있고 이면 플레이어는 게임에서 진다.
Gildong은 게임을 더 어렵게 만들려고 한다. 일부 값 (하나도 바꾸지 않을 수도 있다)을 으로 바꿔서 이기는 방법이 정확히 하나만 남게 하려고 한다. 바꾸는 값은 최대한 적어야 한다. 두 방법이 서로 다르다는 것은 한 방법에서는 캐릭터가 도달하지만 다른 방법에서는 도달하지 않는 발판이 있다는 뜻이다. 으로 바꿔야 하는 값의 최소 개수를 구하라.
입력
첫 줄에 테스트 케이스의 수 ()가 주어진다.
각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 ()이 주어지고, 둘째 줄에는 개의 정수 ()이 주어진다.
각 테스트 케이스에서 처음부터 이기는 방법이 적어도 하나 있다. 모든 테스트 케이스의 을 합하면 을 넘지 않는다.
출력
각 테스트 케이스마다 이기는 방법이 정확히 하나만 남도록 으로 바꿔야 하는 값의 최소 개수를 한 줄에 하나씩 출력한다.
힌트
첫 번째 경우, 플레이어는 4번 발판에 도착할 때까지 다음 발판으로만 이동할 수 있다. 이미 이기는 방법이 하나뿐이므로 답은 이다.
두 번째 경우, Gildong은 , , 를 으로 바꿔서 게임을 으로 만들 수 있다. 이제 이기는 방법은 1번 발판에서 5번 발판으로 바로 이동하는 것뿐이다.
세 번째 경우, Gildong은 와 을 으로 바꿀 수 있다. 그러면 이기는 방법은 순서로 이동하는 것뿐이다.