样例可以过,但测试点0分求帮助[哭]
using namespace std;
const int N=1E3+10;
long long f[21][21][21];
long long w(int a,int b,int c){
if(a <= 0 || b <= 0 || c <= 0) return 1;//归
if(a > 20 || b > 20 || c > 20) return w(20, 20, 20);//递
if(a,b&&b<c){
if(!f[a][b][c=1]) f[a][b][c=1] =w(a,b,c-1);
if(!f[a][b-1][c-1]) f[a][b-1][c-1]=w(a,b-1,c-1);
if(!f[a][b-1][c]) f[a][b-1][c] =w(a,b-1,c);
f[a][b][c]=f[a][b][c-1]+f[a][b-1][c-1]-f[a][b-1][c];
return f[a][b][c];
}
if(!f[a-1][b][c]) f[a][b][c=1] =w(a-1,b,c);
if(!f[a-1][b-1][c]) f[a][b-1][c-1] =w(a-1,b-1,c);
if(!f[a-1][b][c-1]) f[a][b-1][c] =w(a-1,b,c-1);
if(!f[a-1][b-1][c-1]) f[a-1][b-1][c-1] =w(a-1,b-1,c-1);
f[a][b][c]=f[a-1][b][c]+f[a-1][b-1][c]+f[a-1][b-1][c-1]-f[a-1][b-1][c-1];
return f[a][b][c];
}
int main(){
long long n,m,u;
while(1){
cin>>n>>m>>u;
if(n==-1&&m==-1&&u==-1) break;
cout<<"w("<<n<<", "<<m<<", "<<u<<") = "<<w(n,m,u)<<endl;
}
return 0;
}