>>118の修正版をがんばって縮めてみました。

// 191文字
int e(int*a,int n){
    int x,y,&z=a[1],t[]={*a-1,z};
    return n<3?*a?e(t,2)*z:1:z<2||*a<2?e(a+1,n-1):(x=z--,z=e(a,n),--*a,y=e(a,n),++*a,z=x,y);
}
int main(){int a[]={9,9,9,9,9,9,9,9,9};return e(a,9);}