Time Limit: 3s
Memory Limit: 128MB
딘일 자연수 N이 있을 때, N을 구하는 자연수의 덧셈 수식은 유한개가 존재합니다. 예를 들어 15를 구하는 덧셈 수식은,
15 = 1+2+3+4+5 = 1+2+1+7+1+2+1 ...
등과 같이 구할 수 있습니다.
앞으로 읽거나, 뒤로 읽어도 같은 수식을 회문 수식이라고 합니다. 위 예제에서 "1+2+3+4+5"는 앞으로 읽을떄("1+2+3+4+5")와 뒤로 읽을때("5+4+3+2+1")가 서로 다르므로 회문 수식이 아닙니다. "1+2"1+7+1+2+1"의 경우 앞으로 읽어도, 뒤로 읽어도 동일하므로 회문 수식입니다. 회문 수식이 m개의 숫자로 이루어 질때, 좌측 절반의 숫자는 오른쪽 절반의 반대입니다.
재귀적 회문 수식은, 수식의 좌측 부분, 즉 시작부터 floor(2/m)개까지의 숫자로 잘라냈을 때, 그 자체도 재귀적 회문 수식의 형태를 가질때 입니다.
특정 자연수 N 이 주여졌을 때 존재하는 재귀적 회문 덧셈 수식의 개수를 구해보세요!
예를 들어 자연수 7에 대한 재귀적 회문 덧셈 수식은 다음과 같이 존재합니다.
회문 수식이지만, 재귀적 회문 수식이 아닌 예는 다음과 같습니다.
(첫번쨰 케이스와 마지막 케이스는 N>1인 모든 숫자에서 발생합니다.)
* Line 1 : 단일 정수 N (문제의 수, 최대 1000)
* Line 2 ~ N+1 : 단일 정수 x (문제 입력 값)
* Line 1 ~ N : 2개의 정수 i num
- i : 문제 번호
- num : 회문 덧셈 수식의 개수
3 4 7 20
1 4 2 6 3 60