Cod sursa(job #181197)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 17 aprilie 2008 23:55:47
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
//#include <string.h>
#define smax 44100
long a[88205],b[88205];
#define a (a + 44100)
#define b (b + 44100)
long n,m,x,i,j,k,pas,limit;

int main(){
    freopen("diamant.in","r",stdin);
    freopen("diamant.out","w",stdout);
    
    scanf("%ld %ld %ld",&n,&m,&x);
    if (x>smax||x<-smax){printf("0\n");return 0;}
    
    a[0]=1;
    for (i=1;i<=n;++i)
        for (j=1;j<=m;++j){
            pas=i*j;
            limit+=pas;
            for (k=-limit;k<=limit;++k)
                b[k]=(a[k-pas]+a[k]+a[k+pas])%10000;
            //memcpy(a-44100,b-44100,sizeof(a-44100));
            for (k=-limit;k<=limit;++k)
                a[k]=b[k];
        }
    printf("%ld\n",a[x]);
return 0;
}