배스킨라빈스 31
면접 대비시간 제한2초메모리 제한256 MB
n개의 게임에 대해 j와 m이 주어질 때, 각 게임이 몇 턴 만에 끝나는지 계산하고 턴 수가 가장 적은 게임 중 입력에서 가장 먼저 나온 것을 출력한다.
문제
수련회 첫날 밤, 유진이와 규용이는 배스킨라빈스 31 게임을 해서 진 사람이 간장을 마시기로 했다. 게임 규칙은 다음과 같다.
- 유진이와 규용이는 한 줄로 나란히 앉는다. 맨 왼쪽에는 유진이가 앉는다.
- 게임은 유진이부터 시작해 오른쪽으로 진행한다. 즉, 두 사람이 번갈아 가며 차례를 가진다.
- 자기 차례가 되면 1부터 사이의 자연수를 앞사람이 말한 수에 이어서 차례대로 1개 이상 개 이하 말할 수 있다. 반드시 1개 이상 말해야 한다.
- 를 말하는 사람이 진다.
게임을 여러 번 했지만 계속 유진이만 간장을 마셨다. 화가 난 유진이는 인터넷을 검색해서 반드시 이기는 승리 전략을 찾았다. 전략은 다음과 같다.
- 전체 개수 을 로 나눈 나머지 을 구한다.
- 수 이 필승 숫자의 초항이다.
- 초항에 을 계속 더해 나간 수가 모두 필승 숫자다.
- 게임이 시작되면 첫 차례에 필승 숫자의 초항까지 말한다.
- 이후 상대가 몇 개를 말하든, 자기 차례마다 다음 필승 숫자까지 말하면 게임에서 이긴다.
예를 들어 , 이면 이므로 이고, 필승 숫자는 이다.
유진이가 이 승리 전략대로 게임을 해서 이길 때까지 걸리는 턴 수를 그 게임의 길이라고 하자. 턴 수는 두 사람의 차례를 모두 센 값이며, 마지막에 규용이가 를 말하는 차례도 포함한다. 위의 예에서 유진이는 8번, 규용이도 8번 차례를 가지므로 길이는 16이다.
번의 게임이 주어질 때, 길이가 가장 짧은 게임의 번호와 그 길이를 구하시오.
입력
첫째 줄에 게임의 판 수 이 주어진다. ()
다음 개의 줄에는 각 게임의 정보가 한 줄에 하나씩 주어진다. 각 줄에는 전체 개수이자 말하면 지는 수 와 한 턴에 말할 수 있는 자연수의 최대 개수 이 공백으로 구분되어 주어진다. (, )
단, 항상 이고 은 의 배수가 아니다. 즉, 유진이는 항상 게임에서 이길 수 있다.
출력
길이가 가장 짧은 게임의 번호와 그 길이를 공백으로 구분해 출력한다. 게임 번호는 입력 순서대로 1부터 매긴다. 길이가 가장 짧은 게임이 두 개 이상이면 가장 먼저 입력된 게임의 번호와 그 길이를 출력한다.