Cod sursa(job #41101)

Utilizator pocaituDavid si Goliat pocaitu Data 27 martie 2007 22:42:17
Problema Diamant Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<fstream.h>
#define nmax 89206
#define smax 44101
#define dad 44101
#define konst 10000

int s [nmax],s1 [nmax],n,m,x;

//#define s (s+100)
//#define s1 (s1+100)


int rez(long x)
{int i,j;
 long k;
 for(i=1,s[0+dad]=1;i<=n;i++)
  for(j=1;j<=m;j++)
   {for(k=-smax;k<=smax;k++)
	  {
	  s1[k+dad]=(s[k-i*j+dad]+s[k+i*j+dad]);
	  if(s1[k+dad]>konst)
	   s1[k+dad]-=konst;

	  s1[k+dad]+=s[k+dad];
	  if(s1[k+dad]>konst)
	   s1[k+dad]-=konst;
	  }

	memcpy(s,s1,sizeof(s));
	}
 if(x+dad>nmax-2)
   return 0;

 return s[x+dad];
 }
void afis(int x)
{freopen("diamant.out","w",stdout);
 printf("%d",x);
 fclose(stdout);
 }



int main()
{freopen("diamant.in","r",stdin);
 scanf("%d%d%ld",&n,&m,&x);
 afis(rez(x));

 return 0;
 }