번부터 번까지 번호가 부여된 대의 로봇이 출발지에 있다. 이 중 번 로봇은 최대 대의 다른 로봇을 실을 수 있고 거리 를 이동할 수 있다.
처음에 한 로봇이 다른 로봇 대 이상을 싣고 출발지에서 출발하여 자신이 이동할 수 있는 만큼 이동한 후, 싣고 온 모든 로봇을 내려 놓는다. 그 장소에서, 내려 놓은 로봇 중 한 대가 그 장소까지 실려 온 나머지 로봇들 전부 혹은 일부를 싣고 다시 출발하여 동일한 과정을 반복한다.
더 이상 이동할 수 있는 로봇이 없을 때까지 위 과정을 반복하여 마지막에 이동한 로봇이 도달할 수 있는, 최대 거리를 계산하는 프로그램을 작성하라. 최대 거리는 출발지로부터의 거리를 의미한다.
첫 줄에 로봇의 대 수를 나타내는 정수 이 주어진다. ()
그다음 개의 줄 중 번째 줄에는 번 로봇에 대한 정보를 나타내는 두 정수 와 가 공백으로 구분되어 주어진다. ( )
첫 줄에 최대 거리를 출력한다.
4 3 3 0 2 4 10 4 5
20
5 0 7 2 4 0 3 1 1 2 2
13
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 27점
종류 2: 37점
종류 3: 36점
모든 입력 케이스가 주어진다.