분수 (Fraction)
시간 제한0.5초메모리 제한1024 MB
분모가 M 이하인 0과 1 사이의 기약분수를 작은 것부터 나열했을 때 k번째 분수를 구해 출력하고, 존재하지 않으면 -1을 출력한다.
문제
JOI의 M 이사장은 IOI2008에서 일본 선수가 활약할 수 있도록 매일 피라미드 사진에 기도하고 있었다. 어느 날 밤 그의 꿈에 스핑크스가 나타나 이렇게 말했다.
나에게 금괴를 바쳐라. 그러면 소원을 들어주겠다. 다만 금괴의 무게는 1kg보다 가벼워야 하고, 분모가 M 이하인 분수 중 작은 것부터 세어 k번째 분수여야 한다. 이보다 가벼워도 무거워도 소원은 이루어지지 않을 것이다.
매우 바쁜 M 이사장은 대표 후보인 여러분에게 이 문제를 풀라고 지시했다.
입력
입력은 1행으로 이루어진 파일이며, 분모의 상한 M과 구하는 분수의 순위를 나타내는 k가 공백으로 구분되어 쓰여 있다. 단, M ≤ 30,000, k ≤ 200,000이다.
출력
출력은 표준 출력으로 한다. 출력은 1행으로 이루어지며, 1개 또는 2개의 정수를 출력한다. 구하는 분수를 기약분수로 나타냈을 때의 분자와 분모를 공백으로 구분하여 쓰라. 단, 답이 되는 분수가 존재하지 않을 때는 −1을 쓰라.
힌트
위의 두 예에서 분모가 6 이하인 분수를 작은 순서로 나열하면 {1/6, 1/5, 1/4, 1/3, 2/5, 1/2, 3/5, 2/3, 3/4, 4/5, 5/6}의 11개이다.