Cod sursa(job #37239)

Utilizator razvi9Jurca Razvan razvi9 Data 24 martie 2007 18:30:08
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
int n,m,a[50000],i,j,k,y,x,xmax;
int min(int x,int y){return x<y?x:y;}
void ver(int k,int y)
{if(k+y<=x) {a[k+y]+=a[k];a[k+y]%=10000;if(k+y>xmax) xmax=k+y;}
 if(k-y>=0) {a[k-y]+=a[k];a[k-y]%=10000;}
}
int main()
{freopen("diamant.in","r",stdin);
 freopen("diamant.out","w",stdout);
 scanf("%d %d %d",&n,&m,&x);
 a[0]=1;
 for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
  {y=i*j;
   for(k=xmax;k>=0;k--)
    if(a[k]||k==0) ver(k,y);}
 printf("%d",a[x]);
 fclose(stdout);
 return 0;}