n개의 게임에 대해 j와 m이 주어질 때, 각 게임이 몇 턴 만에 끝나는지 계산하고 턴 수가 가장 적은 게임 중 입력에서 가장 먼저 나온 것을 출력한다.
쉬움3수학구현시뮬레이션완전 탐색면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MB수련회 첫날 밤, 유진이와 규용이는 배스킨라빈스 31 게임을 해서 진 사람이 간장을 마시기로 했다. 게임 규칙은 다음과 같다.
게임을 여러 번 했지만 계속 유진이만 간장을 마셨다. 화가 난 유진이는 인터넷을 검색해서 반드시 이기는 승리 전략을 찾았다. 전략은 다음과 같다.
예를 들어 j=31, m=3이면 30=4×7+2이므로 r=2이고, 필승 숫자는 2,6,10,14,18,22,26,30이다.
유진이가 이 승리 전략대로 게임을 해서 이길 때까지 걸리는 턴 수를 그 게임의 길이라고 하자. 턴 수는 두 사람의 차례를 모두 센 값이며, 마지막에 규용이가 j를 말하는 차례도 포함한다. 위의 예에서 유진이는 8번, 규용이도 8번 차례를 가지므로 길이는 16이다.
n번의 게임이 주어질 때, 길이가 가장 짧은 게임의 번호와 그 길이를 구하시오.
첫째 줄에 게임의 판 수 n이 주어진다. (1≤n≤1,000)
다음 n개의 줄에는 각 게임의 정보가 한 줄에 하나씩 주어진다. 각 줄에는 전체 개수이자 말하면 지는 수 j와 한 턴에 말할 수 있는 자연수의 최대 개수 m이 공백으로 구분되어 주어진다. (1≤j≤10,000, 1≤m≤9,999)
단, 항상 j>m이고 j−1은 m+1의 배수가 아니다. 즉, 유진이는 항상 게임에서 이길 수 있다.
길이가 가장 짧은 게임의 번호와 그 길이를 공백으로 구분해 출력한다. 게임 번호는 입력 순서대로 1부터 매긴다. 길이가 가장 짧은 게임이 두 개 이상이면 가장 먼저 입력된 게임의 번호와 그 길이를 출력한다.