Cod sursa(job #355367)
Utilizator | Antoanela Siminiuc antoanela | Data | 10 octombrie 2009 21:09:13 |
---|---|---|---|
Problema | Diamant | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <cstdio>
#define lm 100000
#define X 10000
int v[lm], a[lm], n, m, x, l, i, j, c, k;
int main()
{
freopen("diamant.in","r",stdin);
freopen("diamant.out","w",stdout);
scanf("%d %d %d",&n, &m, &x);
v[0]=1;
l=m*n*(m+1)*(n+1)/4;
x+=l;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{
c=i*j;
for (k=x; k>=c; k--)
{
v[k]+=v[k-c];
v[k]=v[k]%X;
a[k] = v[k-c];
}
for (k=x; k>=c; k--)
{
v[k]+=a[k-c];
v[k]=v[k]%X;
}
for (k=0; k<=x; k++) a[k]=0;
}
printf("%d",v[x]);
}