피보나치 문자열 2
면접 대비시간 제한2초메모리 제한1024 MB
각 테스트 케이스마다 피보나치 문자열 F_n의 앞 k글자에 포함된 a의 개수를 구합니다.
문제
수학에서는 점화식이 자주 쓰인다. 보통 수열을 정의하는 데 쓰지만, 문자열의 수열을 정의하는 데에도 쓸 수 있다.
점화식으로 정의되는 문자열의 예로 피보나치 문자열 , , 이 있다. 이 문자열은 다음과 같이 정의된다. , , (). 처음 일곱 개의 피보나치 문자열은 a, b, ab, bab, abbab, bababbab, abbabbababbab이다.
디마는 알고리즘 동아리에서 문자열 알고리즘을 공부하고 있으며 피보나치 문자열을 최근에 알게 되었다. 그는 i가 커질수록 문자열의 길이가 매우 빠르게 늘어나서, 의 모든 문자를 구하려면 메모리가 너무 많이 필요하다는 것을 알았다. 지난번에는 의 일부 문자만 구하는 문제를 풀었다. 이번에는 더 어려운 문제에 도전한다. 의 처음 개 문자 중 문자 a가 몇 번 나타나는지 구해야 한다.
이 문제를 푸는 프로그램을 작성하라.
입력
첫 줄에 테스트 데이터의 개수 ()가 주어진다. 이어지는 개 줄에는 각각 정수 과 (, )가 주어진다. 여기서 은 문자열 의 길이이며, 문자의 위치는 1부터 번호를 매긴다.
출력
개 줄에 걸쳐 각 테스트 데이터의 답을 한 줄에 하나씩 출력한다. 답은 의 처음 개 문자 중 a의 개수이다.