PKU 1579 Function Run Fun

http://poj.org/problem?id=1579
書いてある関数を実装する。

PKU2696のちょっと複雑なバージョン?
PEで1WA

int w[21][21][21];

main(){
  rep(i,21)rep(j,21){
    w[i][j][0]=w[j][i][0]=1;
    w[i][0][j]=w[j][0][i]=1;
    w[0][i][j]=w[0][j][i]=1;
  }

  for(int a=1;a<=20;a++){
    for(int b=1;b<=20;b++){
      for(int c=1;c<=20;c++){
	if(a<b && b<c)w[a][b][c]=w[a][b][c-1]+w[a][b-1][c-1]-w[a][b-1][c];
	else w[a][b][c]=w[a-1][b][c]+w[a-1][b-1][c]+w[a-1][b][c-1]-w[a-1][b-1][c-1];
      }
    }
  }

  int a,b,c;
  while(cin>>a>>b>>c,~a|~b|~c){
    int ta=a,tb=b,tc=c;
    if(a<0 || b<0 || c<0)a=b=c=0;
    if(a>20 || b>20 || c>20)a=b=c=20;
    cout<<"w("<<ta<<", "<<tb<<", "<<tc<<") = ";
    cout<<w[a][b][c]<<endl;
  }
}