Cod sursa(job #379223)

Utilizator DraStiKDragos Oprica DraStiK Data 30 decembrie 2009 23:22:36
Problema Diamant Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <algorithm>
using namespace std;

#define DIM 44000
#define MOD 10000

int a[2*DIM+5],b[2*DIM+5];
int n,m,x;

void solve ()
{
    int i,j,k;

    b[DIM]=1;
	for (i=1; i<=n; ++i)
		for (j=1; j<=m; ++j)
		{
            for (k=-DIM; k<=DIM; ++k)
                a[k+DIM]=(b[k+i*j+DIM]+b[k+DIM]+b[k-i*j+DIM])%MOD;
            memcpy (b,a,sizeof (a));
		}
    printf ("%d",a[x+DIM]);
}

int main ()
{
    freopen ("diamant.in","r",stdin);
    freopen ("diamant.out","w",stdout);

    scanf ("%d%d%d",&n,&m,&x);
    if (x<=DIM)
        solve ();
    else
        printf ("0");

    return 0;
}