Cod sursa(job #43303)

Utilizator mike4problemsRadu Gabriel mike4problems Data 29 martie 2007 23:06:20
Problema Diamant Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
#define Mod 10000
#define abs(x) ((x)>0?(x):-(x))

int a[2][20*20+1];
int n,m,x,i,j,k,t,crt,prev;

int main()
 {
 freopen("diamant.in","r",stdin);
 freopen("diamant.out","w",stdout);
 scanf("%d%d%d",&n,&m,&x);
 if(abs(x)>44100)
  {
  printf("0\n");
  return 0;
  }
 a[0][0]=1;
 x=abs(x);
 for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
   {
   t++; crt=t&1; prev=!crt;
   for(k=0;k<=x;k++)
    a[crt][k]=(a[prev][abs(k-i*j)]+a[prev][k]+a[prev][k+i*j])%Mod;
   }
 printf("%d\n",a[(n*m)&1][x]);
 return 0;
 }