Pagini recente » Cod sursa (job #1095854) | Cod sursa (job #2294416) | Cod sursa (job #694892) | Cod sursa (job #2136913) | Cod sursa (job #1280359)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
#define MAX 44110
#define MOD 10000
int rez[MAX*2][2];
int n, m, x, i, j, k;
int minim, maxim;
int main()
{
fin >> n >> m >> x;
rez[44100][1] = 1;
int dr = 0;
for(i = 1 ; i <= n ; i++)
{
for(j = 1 ; j <=m ; j++)
{
int v = (dr++) & 1;
int r = i * j;
for(k = minim ; k <= maxim ; k++)
{
rez[k + 44100][v] = 0;
}
for(k = minim ; k <= maxim ; k++)
{
k += 44100;
if(rez[k][v ^ 1])
{
rez[k][v] += rez[k][v ^ 1];
if(rez[k][v] >= MOD)
rez[k][v] -= MOD;
rez[k + r][v] += rez[k][v ^ 1];
if(rez[k + r][v] >= MOD)
rez[k + r][v] -= MOD;
rez[k - r][v] += rez[k][v ^ 1];
if(rez[k - r][v] >= MOD)
rez[k - r][v] -= MOD;
}
k -= 44100;
}
minim = minim - i * j;
maxim = maxim + i * j;
}
}
int v = (dr-1) & 1;
if(x >= -44100 && x <= 44100)
fout << rez[x + 44100][v] << "\n";
else
fout << 0 << "\n";
}