01背包问题
#include <iostream>
#include <cstring>
using namespace std;
typedef long long LL;
const int N = 40;
int n, sum, res;
LL f[N * N];
int main()
{
cin >> n;
sum = (1 + n) * n / 2;
if(sum != (sum / 2 * 2)) cout << 0 << endl;
else
{
sum /= 2;
f[0] = 1;
for(int i = 1; i <= n; i ++)
for(int j = sum; j >= i; j --)
f[j] += f[j - i];
cout << f[sum] / 2 << endl;
}
return 0;
}