#include<iostream>
#define ll long long
using namespace std;
long long w(ll a, ll b, ll c){
if(a <= 0|| b <= 0 || c <= 0) return 1;
else if(a > 20 || b > 20 || c > 20) return w(20, 20, 20);
else if(a < b && b < c) return w(a,b,c - 1) + w(a,b - 1,c - 1) - w(a,b - 1,c);
else return w(a - 1,b,c) + w(a - 1,b - 1,c) + w(a - 1,b,c - 1) - w(a - 1,b - 1,c - 1);
}
long long a,b,c;
int main(){
while(true){
cin >> a >> b >> c;
if(a == -1 && b == -1 && c == -1) break;
else cout << "w(" << a << ", " << b << ", " << c << ") = " << w(a, b, c) << endl;
}
return 0;
}
我没学过记忆化搜索,我这样该怎么办啊啊啊啊啊啊