#11095. 分割等和子集1

内存限制:256 MiB 时间限制:1000 ms 输入文件: ge.in 输出文件: ge.out
题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

对于从 1\sim n 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。

举个例子,如果 n=3 ,对于 \{1,2,3\} 能划分成两个子集合,每个子集合的所有数字和是相等的:

\{3\} \{1,2\} 是唯一一种分法(交换集合位置被认为是同一种划分方案,因此不会增加划分方案总数)

给出 n ,你的程序应该输出划分方案总数。

输入格式

输入文件只有一行,且只有一个整数 n

输出格式

输出划分方案总数。

样例

样例输入 #1

7

样例输出 #1

4

解释:当 n=7 ,有四种方法能划分集合 \{1,2,3,4,5,6,7 \} ,每一种分法的子集合各数字和是相等的:

\{1,6,7\} \{2,3,4,5\}
\{2,5,7\} \{1,3,4,6\}
\{3,4,7\} \{1,2,5,6\}
\{1,2,4,7\} \{3,5,6\}

数据范围与提示

对于 70\% 的数据, 1\le n \le 24

对于 100\% 的数据, 1\le n \le 39

【来源】USACO2.2