Cod sursa(job #723390)
Utilizator | Data | 25 martie 2012 14:00:07 | |
---|---|---|---|
Problema | Diamant | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <stdio.h>
#define s ((n)*(n+1)*(m)*(m+1))/(4)
#define M 10000
using namespace std;
int n,m,x,a[3][120000],la,lb=1;
int main()
{
freopen ("diamant.in","r",stdin);
freopen ("diamant.out","w",stdout);
scanf("%d %d %d", &n, &m, &x);
a[lb][s]=1;
for(int i=1 ; i<=n ; ++i)
for(int j=1 ; j<=m ; ++j, lb=la, la=1-la )
for(int k=0, p=i*j ; k <= 2*s ; ++k )
a[la][k] = (a[lb][k] + a[lb][k+p] + a[lb][k-p]) % M;
printf("%d", a[lb][x+s]);
return 0;
}