해킹
면접 대비시간 제한2초메모리 제한512 MB
각 방에서 다음 방으로 가는 간선이 하나씩 있는 그래프에서 간선을 최대 하나만 바꿔 한 시작점에서 방문할 수 있는 서로 다른 방의 수를 최대로 만든다.
문제
명찬은 최근에 게임 하나를 시작했다. 리버스 엔지니어링의 고수인 명찬은 게임을 뜯어 본 결과 이 게임에서 제공하는 던전 탐사 컨텐츠가 아래와 같은 구성을 지니고 있다는 것을 알아냈다.
- 던전은 총 개의 방으로 구성되어 있다.
- 번째 방을 클리어하면 번 방으로 이동하게 된다.
- 플레이어는 개의 방 중 하나의 방을 골라 해당 방에서 탐사를 시작할 수 있다.
- 플레이어는 던전 탐사의 결과로 방문한 방의 개수에 비례한 보상을 받게 된다. 같은 방에 여러 번 방문하여도 방문한 방의 개수는 하나로 생각한다.
명찬은 게임에서 최대의 이익을 보기 위해 게임을 해킹한 결과, 번째 방을 클리어한 후 이동하게 되는 다음 방 를 마음대로 바꿀 수 있게 됐다. 하지만 너무 많은 것을 바꾸면 운영진한테 걸릴 수 있으므로, 최대 하나의 방에 대해서만 값을 바꾸려고 한다.
이 때, 명찬이 방문 가능한 방의 최대 개수를 출력하여라.
입력
첫 줄에 방의 개수 이 주어진다().
둘째 줄에 각 방을 클리어한 후 이동하게 되는 방의 번호 이 순서대로 공백으로 구분되어 주어진다().
출력
첫째 줄에 명찬이 방문 가능한 방의 최대 개수를 출력한다.