Cod sursa(job #37239)
Utilizator | Jurca 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;}