Rt,会卡住
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ri register int
using namespace std;
const int L=11,D_=31;
const int MOD=11380;
int L1,L2,L3,D,f[L][L][L][D_];
int dp(int l1,int l2,int l3,int d)
{
int &v=f[l1][l2][l3][d];
if(v!=-1) return v;
if(!l1&&!l2&&!l3) return v=!d?1:0;
v=0;
for(ri i=0;i<=l1-1;i++)
for(ri j=0;j<=l2;j++)
for(ri k=0;k<=l3;k++)
v=(v+dp(i,j,k,d-1)*dp(l1-i-1,l2-j,l3-k,d)%MOD)%MOD;
for(ri j=0;j<=l2-1;j++)
for(ri k=0;k<=l3;k++)
v=(v+dp(0,j,k,d-1)*dp(l1,l2-j-1,l3-k,d)%MOD)%MOD;
for(ri k=0;k<=l3-1;l3++)
v=(v+dp(0,0,k,d-1)*dp(l1,l2,l3-k-1,d)%MOD)%MOD;
return v;
}
int main()
{
scanf("%d %d %d %d",&L1,&L2,&L3,&D);
memset(f,-1,sizeof(f));
printf("%d",(dp(L1,L2,L3,D)-dp(L1,L2,L3,D-1)+MOD)%MOD);
return 0;
}