paste bin

malic
C++
#include <cstdio>
#include <cstring>

#define MAXN 21
int bw[MAXN][MAXN][MAXN];

int w(int a, int b, int c)
{
    
    if(a<=0 || b<=0 || c<=0)
    {
        return 1;
    }
    if(a>20 || b>20 || c>20)
    {
        return w(20,20,20);
    }
    
    if(bw[a][b][c]!=0)
    {
        return bw[a][b][c];
    }
    else
    {
        if(a<b && b<c)
        {
            bw[a][b][c]=w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c);
        }
        else
        {
            bw[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 bw[a][b][c];
    }
}

int main(void)
{
    memset(bw,0,sizeof(int)*MAXN*MAXN*MAXN);
    int a,b,c;
    while (1)
    {
        scanf("%d%d%d",&a,&b,&c);
        if(a==-1 && b==-1 && c==-1)
        {
            break;
        }
        printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
    }
    return 0;
}

2020 C1QD

fork this code