Pagini recente » Cod sursa (job #1265114) | Cod sursa (job #2516518) | Cod sursa (job #2964307) | Cod sursa (job #2890025) | Cod sursa (job #2137527)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int mod = 10000;
const int clc = 88200;
int N, M, k, X;
int v[405];
int dr[2][clc+5];
int main()
{
fin >> N >> M >> X;
for(int i=1; i<=N; ++i)
for(int j=1; j<=M; ++j)
{
v[++k] = i*j;
}
int x = N*(N+1)/2;
int y = M*(M+1)/2;
if(X>x*y)
{
cout << 0;
return 0;
}
int l = 1;
dr[0][clc/2]=1;
for(int i=1; i<=N*M; ++i)
{
for(int j=0; j<=clc; ++j)
{
dr[l][j] = dr[1-l][j]+ dr[l][j];
if(j - v[i] >=0 )
dr[l][j] += dr[1-l][j-v[i]];
if(j+ v[i] <= clc)
dr[l][j] += dr[1-l][j+v[i]];
dr[l][j]= dr[l][j]%mod;
}
for(int j=0; j<=clc; ++j)
{
dr[1-l][j] = 0;
}
l=1-l;
}
fout << dr[1-l][X+clc/2]%mod;
return 0;
}