64,637
社区成员
发帖
与我相关
我的任务
分享
using namespace std;
int qq(int*);
int io;
int d[60][60][60];
int main(){
int n;
cin>>n;
int a[3]={n,n,n};
cout<<qq(a)<<" ";
}
int qq(int *a){
int h=0;
int b[3],c[3],d[3];
int s=a[1],m=a[2];
if( d[ a[0] ][ a[1] ][ a[2] ]!=0 )
return d[a[0]][a[1]][a[2]];
for( int i=0;i!=3 ;i++ ){
b[i]=a[i];
c[i]=a[i];
d[i]=a[i];
}
if( a[0]==0 && a[1]==0 )
return 1;
if( a[2]>=a[1] && a[1]-1>=a[0] ){
b[1]--;
h+=qq(b);
}
if( a[2]-1>=a[1] && a[1]>=a[0] ){
c[2]--;
h+=qq(c);
}
if(a[0]>0){
d[0]--;
h+=qq(d);
}
d[a[0]][a[1]][a[2]]=h;
return h;
}