1번째 날에 호랑이가 떡을 먹은 개수를 a
, 2번째 날에 떡을 먹은 개수를 b
라고 하자. 그러면 3번째 날에 떡을 먹은 개수는 a+b
, 4번째 날에 떡을 먹은 개수는 a+2b
, 5번째 날에 떡을 먹은 개수는 2a+3b
, 6번째 날에 떡을 먹은 개수는 3a+5b
... 이런식으로 계속 진행하여 d
번째 날에 떡을 먹은 개수를 구한다.
d
번째 날에 떡을 먹은 개수를 pa+qb
라고하자. 그러면 pa+qb=k
이다. 이는 qb=k-pa
와 같다. 다시말해 k-pa
은 q
로 나누어 떨어져야한다.(i.e. (k-pa) % q == 0
) 이러한 k-pa
를 구하기 위해, a
를 1부터 대입하여 1씩 증가시켜q
로 나누어떨어지는지 확인해본다.
import sys
d, k = map(int, sys.stdin.readline().rsplit())
first = [1,0]
second = [0,1]
p, q = 0, 0
for i in range(3, d+1):
p = first[0] + second[0]
q = first[1] + second[1]
first = second[:]
second = [p, q]
a = 1
while True:
x = p * a
y = k - x
if y % q == 0:
print(a)
print(y//q)
break
a += 1