#include<iostream> #include<cstdio> #include<cstring> #define ll long long #define N 10000000 + 10 using namespace std; ll n,m,dp[N]; int main() { scanf("%lld",&n); m=(n*(n+1))/2; if(m%2) { cout<<0; return 0; } m/=2; dp[0]=1; for(int i=1;i<=n;i++) for(int j=m;j>=i;j--)//数组压缩 dp[j]+=dp[j-i]; cout<<dp[m]/2;//一定注意最后除以2 return 0; } /************************************************************** Problem: 1944 User: admin Language: C++ Result: Accepted Time:41 ms Memory:80200 kb ****************************************************************/