피보나치 단어
시간 제한1초메모리 제한128 MB
주어진 a/b 패턴이 n번째 피보나치 단어에서 겹침을 포함해 연속 부분 문자열로 몇 번 나타나는지 센다.
문제
피보나치 단어는 피보나치 수와 비슷한 방식으로 정의된다.
여기서 는 두 단어를 이어 붙이는 연산(연결, concatenation)을 뜻한다.
따라서 처음 몇 개의 피보나치 단어는 , , , 이다.
문자 a와 b로만 이루어진 패턴 단어와 정수 이 주어진다. 이 패턴이 번째 피보나치 단어 안에서 연속한 부분 문자열로 몇 번 나타나는지 세어라. 두 등장은 서로 겹칠 수 있으므로, 패턴과 일치하는 모든 시작 위치를 각각 하나로 센다.
입력
첫째 줄에 패턴 단어가 주어진다. 이 단어는 a 또는 b로 이루어져 있으며 길이는 이상 이하이다.
둘째 줄에 양의 정수 이 주어진다. ()
출력
패턴 단어가 안에 나타나는 횟수를 음이 아닌 정수 하나로 출력한다. 답은 매우 클 수 있으며 64비트 정수 범위를 넘을 수 있다.