code:
#include<bits/stdc++.h>
using namespace std;
int p[25][25][25];
int w(long long a,long long b,long long c){
if(a<=0||b<=0||c<=0) return 1;
else if(a>20||b>20||c>20) return p[20][20][20];
if(p[a][b][c]>0) return p[a][b][c];
else if(a<b&&b<c){
p[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
return p[a][b][c];
}else{
p[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);
return p[a][b][c];}
}
int main(){
long long d,e,f;
while(1){
cin>>d>>e>>f;
if(d==-1&&e==-1&&f==-1) break;
else cout<<"w("<<d<<", "<<e<<", "<<f<<") = "<<w(d,e,f)<<endl;}
return 0;}
```20pts,检查了几遍,感觉没有问题,但
这就是现实(https://www.luogu.com.cn/record/181818263)