파이보나치
시간 제한1초메모리 제한256 MB
n과 k가 주어질 때 P_n의 k제곱을 정수 A, B를 써서 A φ^k + B 형태로 나타내고 1,000,000,007로 나눈 나머지를 출력합니다.
문제
피보나치 수는 다음 점화식으로 정의되는 수열이다.
피보나치 수는 의 두 근 중 하나인 황금비 와 관계가 깊다. 일반항을 로 쓸 수 있다는 점이 그런 예다. 이제 로 파이보나치 수를 다음 점화식으로 정의한다.
로 두면 에서 이 성립한다. 여기서 묻는 것은 를 두 정수 , 로 꼴로 나타낼 수 있는지다. 나타낼 수 있으면 와 를 출력하고, 불가능하면 -1을 출력하라.
입력
첫째 줄에 두 정수 과 가 공백으로 구분되어 주어진다.
, 이다.
출력
첫째 줄에 를 만족하는 두 정수 , 를 각각 1,000,000,007로 나눈 나머지를 공백으로 구분해 출력한다. 그런 두 정수가 없으면 -1을 출력한다.
힌트
, 인 경우 이다. 을 1,000,000,007로 나눈 나머지가 1,000,000,004이다.