2013年12月8日 星期日

[USACO] 2-2-2 Subset Sums


/*
ID: 551100k1
LANG: C++
TASK: subset
*/
#include<stdio.h>
long long int ans[10005]={0};
int main(){
    freopen("subset.in","r",stdin);
    freopen("subset.out","w",stdout);
    int n,i,j,all;
    scanf("%d",&n);
    if(n*(n+1)%4){
        puts("0");
        return 0;
    }
    all=n*(n+1)/4;
    ans[0]=1;
    for(i=1;i<=n;i++){
        for(j=all;j>=i;j--)
            ans[j]+=ans[j-i];
    }
    printf("%lld\n",ans[all]/2);
}

沒有留言:

張貼留言