Lang:G++
Edit1234#include<cstdio>int n,m,ans;void dfs(int r,int b,int p){if(r<=b){if(!r&&!p&&++ans==1e9+7)ans=0;return;}for(int i=b+1;i<=r;++i)dfs(r-i,i,p*i%m);}int main(){scanf("%d%d",&n,&m);dfs(n,0,1);printf("%d",ans);}
Lang:G++
Edit1234#include<cstdio>int n,m,ans;void dfs(int r,int b,int p){if(r<=b){if(!r&&!p&&++ans==1e9+7)ans=0;return;}for(int i=b+1;i<=r;++i)dfs(r-i,i,p*i%m);}int main(){scanf("%d%d",&n,&m);dfs(n,0,1);printf("%d",ans);}