피보나치 수의 합
시간 제한1초메모리 제한128 MB
합이 n이 되는 서로 다른 피보나치 수 가운데 개수가 가장 적은 경우를 증가하는 순서대로 각 테스트 케이스마다 출력합니다.
문제
피보나치 수 는 로 정의되며, 초기값은 , 이다. 모든 양의 정수는 서로 다른 피보나치 수 하나 이상의 합으로 나타낼 수 있다는 사실이 잘 알려져 있다.
한 양의 정수를 서로 다른 피보나치 수들의 합으로 나타내는 방법은 여러 가지다. 예를 들어 은 로도, 로도, 로도 나타낼 수 있다.
이 문제는 한 양의 정수를 개수가 가장 적은 서로 다른 피보나치 수들의 합으로 나타내는 것이다. 양의 정수 이 주어질 때, 합이 과 같아지면서 사용하는 서로 다른 피보나치 수의 개수가 최소가 되는 조합을 구하라.
입력
입력은 표준 입력으로 받는다. 첫 번째 줄에 테스트 데이터의 개수를 나타내는 정수 가 주어진다. 이어지는 각 줄에는 정수 이 하나씩 주어진다 ().
출력
출력은 표준 출력을 사용한다. 각 테스트 데이터마다 답을 한 줄에 출력한다. 합이 주어진 정수 과 같아지는 최소 개수의 서로 다른 피보나치 수들을 증가하는 순서로 공백으로 구분하여 출력한다.