不知道这个代码哪里出问题了
全部都是RE(一片紫)
求助
#include<bits/stdc++.h>
using namespace std;
long long ans[21][21][21][2];
long long fun(int x,int y,int z)
{
if(x<=0||y<=0||z<=0) return 1;
if(ans[x][y][z][0]) return ans[x][y][z][1];
if(x<y&&y<z){
ans[x][y][z][0]=1;
return ans[x][y][z][1]=fun(x,y,z-1)+fun(x,y-1,z-1)-fun(x,y-1,z);
}
ans[x][y][z][0]=1;
return ans[x][y][z][1]=fun(x-1,y,z)+fun(x-1,y-1,z)+fun(x-1,y,z-1)-fun(x-1,y-1,z-1);
}
int main()
{
long long a,b,c;
while(1)
{
scanf("%lld%lld%lld",&a,&b,&c);
if(a==-1&&b==-1&&c==-1) return 0;
if(a>=20||b>=20||c>=20){
printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,fun(20,20,20));
}
printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,fun(a,b,c));
}
}