단봉 회문 분할

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

양의 정수로 이루어진 수열을 앞에서 읽으나 뒤에서 읽으나 같으면, 그 수열을 회문(palindrome) 이라고 합니다. 예를 들면 다음과 같습니다.

  • 23 11 15 1 37 37 1 15 11 23
  • 1 1 2 3 4 7 7 10 7 7 4 3 2 1 1

회문 수열의 값이 가운데 값까지 줄어들지 않고(비내림차순), 이어서 (회문이므로) 가운데부터 끝까지 늘어나지 않으면(비오름차순), 그 수열을 단봉 회문(unimodal palindrome) 이라고 합니다. 예를 들어 위의 첫 번째 수열은 단봉 회문이 아니지만, 두 번째 수열은 단봉 회문입니다.

단봉 회문 수열에 속한 정수의 합이 $N$ 이면, 그 수열을 정수 $N$ 의 단봉 회문 분할(unimodal palindromic decomposition) 이라고 합니다. 예를 들어 처음 몇 개의 정수에 대한 단봉 회문 분할은 다음과 같습니다.

  1. (1)
  2. (2), (1 1)
  3. (3), (1 1 1)
  4. (4), (1 2 1), (2 2), (1 1 1 1)
  5. (5), (1 3 1), (1 1 1 1 1)
  6. (6), (1 4 1), (2 2 2), (1 1 2 1 1), (3 3), (1 2 2 1), (1 1 1 1 1 1)
  7. (7), (1 5 1), (2 3 2), (1 1 3 1 1), (1 1 1 1 1 1 1)
  8. (8), (1 6 1), (2 4 2), (1 1 4 1 1), (1 2 2 2 1), (1 1 1 2 1 1 1), (4 4), (1 3 3 1), (2 2 2 2), (1 1 2 2 1 1), (1 1 1 1 1 1 1 1)

정수 $N$ 이 주어졌을 때, 그 수의 단봉 회문 분할의 개수를 구하는 프로그램을 작성하세요.

입력

입력은 한 줄에 하나씩 주어지는 양의 정수들로 이루어집니다. 0 만 적힌 줄은 입력의 끝을 뜻하며, 처리하지 않습니다.

출력

마지막의 0 을 제외한 각 입력 값마다, 그 값과 공백 하나, 그리고 그 값의 단봉 회문 분할의 개수를 한 줄에 출력합니다.

제한

  • $1 \le N \le 250$