Cod sursa(job #723398)

Utilizator mytzuskyMihai Morcov mytzusky Data 25 martie 2012 14:06:36
Problema Diamant Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#define M 10000

using namespace std;
int n,m,x,a[3][100000],la,lb=1,s;

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

    scanf("%d %d %d", &n, &m, &x);

    if(x>44100 || x<-44100)
        printf("0");
    else{
        s = (n*(n+1)*m*(m+1))/4;
        a[lb][s]=1;
        for(int i=1 ; i<=n ; ++i)
            for(int j=1 ; j<=m ; ++j, lb=la, la=1-la )
                for(int k=0, p=i*j ; k <= 2*s ; ++k )
                    a[la][k] = (a[lb][k] + a[lb][k+p] + a[lb][k-p]) % M;
        printf("%d", a[lb][x+s]);
    }
    return 0;
}