Cod sursa(job #34541)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 20 martie 2007 21:12:28
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define smax 90000
#define MOD 10000

int n,m,s,i,j,k,ss[2][smax],sn,sol,sm;

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

    scanf("%d%d%d",&n,&m,&s);
    sm=n*m*(n+1)*(m+1)/4;
    ss[0][sm]=1,sn=0;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++)
        {
            sn=1-sn;
            memcpy(ss[sn],ss[1-sn],sizeof(ss[sn]));
            for (k=0;k<=2*sm;k++)
            {
                ss[sn][k-i*j]=(ss[sn][k-i*j]+ss[1-sn][k])%MOD;
                ss[sn][k+i*j]=(ss[sn][k+i*j]+ss[1-sn][k])%MOD;
            }
        }
    printf("%d\n",ss[sn][sm+s]);

    return 0;
}