Pagini recente » Cod sursa (job #527088) | Cod sursa (job #1219719) | Cod sursa (job #3197607) | Cod sursa (job #1376527) | Cod sursa (job #2670077)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 20;
const int GMAX = 44100;
const int MOD = 1e4;
int v[NMAX * NMAX + 1];
int dp[2][GMAX];
int modul( int x ) {
if ( x < 0 )
x = -x;
return x;
}
int main() {
ifstream fin( "diamant.in" );
ofstream fout( "diamant.out" );
int n, m, x, i, j, s = 0, k = 0;
fin >> n >> m >> x;
for ( i = 1; i <= n; i ++ ) {
for ( j = 1; j <= m; j ++ ) {
s += i * j;
v[++k] = i * j;
}
}
if ( x < 0 )
x = -x;
if ( s < x ) {
fout << 0;
return 0;
}
dp[1][v[1]] = 1;
dp[1][0] = 1;
for ( i = 2; i <= k; i ++ ) {
for ( j = 1; j <= GMAX - v[i]; j ++ ) {
dp[i % 2][j] = dp[1 - i % 2][j] + dp[1 - i % 2][j + v[i]] + dp[1 - i % 2][modul(j - v[i])];
dp[i % 2][j] %= MOD;
///cout << i << ' ' << j << ' ' << dp[i % 2][j] << endl;
}
}
i --;
fout << dp[i % 2][x];
return 0;
}