参考了这个博客
#include<bits/stdc++.h>
using namespace std;
const int N=31;
int res[N][N][N][N];
const int mod=11380;
int a,b,c,d;
int main()
{
cin>>a>>b>>c>>d;
for(int i=0; i<=d; i++) res[i][0][0][0]=1;
for(int i=1; i<=d; i++)
{
for(int j=0; j<=a; j++)
{
for(int k=0; k<=b; k++)
{
for(int l=0; l<=c; l++)
{
if(j>0)
{
for(int e=1; e<=j; e++)
{
for(int f=0; f<=k; f++)
{
for(int g=0; g<=l; g++)
{
res[i][j][k][l]=(res[i][j][k][l]+res[i-1][e-1][f][g]*res[i][j-e][k-f][l-g])%mod;
}
}
}
}
if(k>0)
{
for(int f=1; f<=k; f++)
{
for(int g=0; g<=l; g++)
{
res[i][j][k][l]=(res[i][j][k][l]+res[i-1][0][f-1][g]*res[i][j][k-f][l-g])%mod;
}
}
}
if(l>0)
{
for(int g=1; g<=l; g++)
{
res[i][j][k][l]=(res[i][j][k][l]+res[i-1][0][0][g-1]*res[i][j][k][l-g])%mod;
}
}
}
}
}
}
cout << (res[d][a][b][c] - (d ? res[d - 1][a][b][c] : 0) + mod) % mod<< endl;
return 0;
}