Pagini recente » Cod sursa (job #2967671) | Cod sursa (job #1337687) | Cod sursa (job #1588340) | Cod sursa (job #1809878) | Cod sursa (job #2520850)
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int r = 10000;
const int c = 50000;
//rezmax = 44100
inline int max(int a, int b)
{
if (a > b)
return a;
return b;
}
inline int min(int a, int b)
{
if (a < b)
return a;
return b;
}
int main()
{
int n, m, x, i, j, l, rasp = 0;
int a[401], k = 0;
int dp[2][100001] = {};
//dp[i] = numarul de diamante de calitate i;
fin >> n >> m >> x;
if (abs(x) > 44100)
{
fout << 0;
return 0;
}
x = abs(x);
for (i = 1; i<=n; i++)
for (j = 1; j<=m; j++)
{
k++;
a[k] = i*j;
}
l = 0;
/*
for (i = -x; i<=x; i++)
fout << i << ' ';
*/
for (i = 1; i<=k; i++, l = 1-l)
{
for (j = min(-x, -n*m); j<=max(x, n*m); j++)
{
dp[l][c+j] = (dp[1-l][c+j] + dp[1-l][c+j-a[i]] + dp[1-l][c+j+a[i]])%r;
//fout << dp[l][c+j] << " ";
}
//fout << '\n';
dp[l][c+a[i]]++;
dp[l][c-a[i]]++;
rasp = (rasp + dp[l][c+x])%r;
}
fout << rasp;
return 0;
}