Cod sursa(job #953548)

Utilizator silviu982001Borsan Silviu silviu982001 Data 26 mai 2013 15:34:48
Problema Diamant Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
#define Mod 10000


#define abs(x) ((x)>0?(x):-(x))
 
int a[2][45000];
int n,m,x,i,j,k,t,crt,prev,max;
 
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;
			max+=i*j;
			for(k=0;k<=max;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;
}