아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

분수 (Fraction)

시간 제한0.5초메모리 제한1024 MB

요약
분모가 M 이하인 0과 1 사이의 기약분수를 작은 것부터 나열했을 때 k번째 분수를 구해 출력하고, 존재하지 않으면 -1을 출력한다.
난이도

보통10점 중 7점

유형
이분 탐색, 정수론, 수학, 정렬
정답자
아직 제출이 없습니다

문제

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개이다.

예제2

  1. 예제 1

    입력
    6 8
    
    예상 출력
    2 3
    
  2. 예제 2

    입력
    6 12
    
    예상 출력
    -1