#P1466. [USACO2.2] Subset Sums

    ID: 5579 远端评测题 1000ms 125MiB 尝试: 1 已通过: 1 难度: 5 上传者: 标签>递推USACO背包 DP折半搜索 meet in the middle

[USACO2.2] Subset Sums

题目描述

For many sets of consecutive integers from 11 through NN (1N391 \le N \le 39), one can partition the set into two sets whose sums are identical.

For example, if N=3N=3, one can partition the set {1,2,3}\{1,2,3\} in one way so that the sums of both subsets are identical:

  • {3}\{3\} and {1,2}\{1,2\}

This counts as a single partitioning. Reversing the order counts as the same partitioning and thus does not increase the count of partitions.

If N=7N=7, there are four ways to partition the set {1,2,3,,7}\{1,2,3,\ldots,7\} so that each partition has the same sum:

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

Given NN, print the number of ways a set containing the integers from 11 through NN can be partitioned into two sets whose sums are identical. Print 00 if there are no such ways.

Your program must calculate the answer, not look it up from a table.

输入格式

A single line with a single integer NN.

输出格式

A single line with a single integer that tells how many same-sum partitions can be made from the set {1,2,,N}\{1,2,\ldots,N\}. The output should be 00 if there are no ways to make a same-sum partition.

7

4

提示

USACO Training Section 2.2.