Pagini recente » Cod sursa (job #1708671) | Cod sursa (job #762971) | Cod sursa (job #2917670) | Cod sursa (job #400848) | Cod sursa (job #1853776)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <cmath>
#define MaxS 50000
#define MaxN 20
#define Mod 10000
using namespace std;
FILE *IN,*OUT;
int N,M,X,Size=0,v[MaxN*MaxN+5],Sum=0,D[2][2*MaxS];
int main()
{
IN=fopen("diamant.in","r");
OUT=fopen("diamant.out","w");
fscanf(IN,"%d%d%d",&N,&M,&X);
D[0][MaxS]=1;
if(abs(X)>MaxS)
{
fprintf(OUT,"0");
return 0;
}
for(int i=1;i<=N;i++)
for(int j=1;j<=M;j++)
v[++Size]=i*j;
for(int i=1;i<=Size;i++)
{
Sum+=v[i];
for(int j=MaxS-Sum;j<=MaxS+Sum;j++)
D[i%2][j]=(D[(i+1)%2][j]+D[(i+1)%2][j-v[i]]+D[(i+1)%2][j+v[i]])%Mod;
}
fprintf(OUT,"%d",D[Size%2][X+MaxS]);
return 0;
}