Pagini recente » Cod sursa (job #2418252) | Cod sursa (job #2310252) | Cod sursa (job #48330) | Cod sursa (job #2939024) | Cod sursa (job #2762504)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f ( "diamant.in" );
ofstream g ( "diamant.out" );
const int NMAX = 21, INF = 44100, MOD = 10000;
int dp[2][2 * INF + 100];
int main()
{
int N, M, X;
f >> N >> M >> X;
int smax = 0;
X = abs ( X );
for ( int i = 1; i <= N; i++ )
for ( int j = 1; j <= M; j++ )
smax += i * j;
if ( X > smax )
{
g << 0;
return 0;
}
dp[1][smax] = 1;
for ( int i = 1; i <= N; i++ )
for ( int j = 1; j <= M; j++ )
{
for ( int k = 0; k <= 2 * smax; k++ )
dp[0][k] = dp[1][k];
for ( int k = 0; k <= 2 * smax; k++ )
{
if ( k + i * j <= 2 * smax )
dp[1][k] += dp[0][k + i * j];
if ( k - i * j >= 0 )
dp[1][k] += dp[0][k - i * j];
dp[1][k] %= MOD;
}
}
g << dp[1][X + smax];
return 0;
}