균형잡힌 문자열
시간 제한0.5초메모리 제한512 MB
길이 n인 이진 문자열 가운데 모든 접두사에서 0과 1의 개수 차이가 1 이하인 문자열의 수를 16769023으로 나눈 나머지를 구한다.
문제
0과 1로 이루어진 이진 문자열 0101101은 0과 1의 개수 차이가 1 이하이다. 첫 번째 문자를 포함하는 모든 부분 문자열 0, 01, 010, 0101, 01011, 010110, 0101101도 0과 1의 개수 차이가 모두 1 이하이다.
이와 같이, 이진 문자열 중에서 첫 번째 문자를 포함하는 모든 부분 문자열의 0과 1의 개수 차이가 1 이하인 문자열을 균형잡힌 문자열이라 부른다. 문자열 자체도 자신의 부분 문자열이다.
양의 정수 n이 주어질 때, 길이가 n인 이진 문자열 중에서 균형잡힌 문자열의 수를 구하는 프로그램을 작성하시오.
예를 들어, n = 3인 경우에는 010, 011, 100, 101 네 개의 문자열이 균형잡힌 문자열이다.
입력
입력은 표준입력을 사용한다. 첫 번째 줄에 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다.
출력
출력은 표준출력을 사용한다. 길이가 n인 이진 문자열 중에서 균형잡힌 문자열의 개수를 16769023로 나눈 나머지 값을 한 줄에 출력한다.