Pagini recente » Cod sursa (job #2601469) | Cod sursa (job #1175303) | Cod sursa (job #2765091) | Cod sursa (job #486843) | Cod sursa (job #1318158)
#include<cstdio>
using namespace std;
FILE *fin = fopen( "diamant.in", "r" ), *fout = fopen( "diamant.out", "w" );
const int kmax = 44100;
const int mod = 10000;
int d[ 2 ][ 2 * kmax + 1 ];
int main() {
int n, m, x, ind, s;
fscanf( fin, "%d%d%d", &n, &m, &x );
d[ 0 ][ kmax ] = 1;
ind = 1;
for( int i = 1; i <= n; ++ i ) {
for( int j = 1; j <= m; ++ j ) {
for( int k = 0; k <= 2 * kmax; ++ k ) {
d[ ind ][ k ] = d[ 1 - ind ][ k ];
if ( k - i * j >= 0 ) {
d[ ind ][ k ] += d[ 1 - ind ][ k - i * j ];
}
if ( k + i * j <= 2 * kmax ) {
d[ ind ][ k ] += d[ 1 - ind ][ k + i * j ];
}
d[ ind ][ k ] %= mod;
}
ind = 1 - ind;
}
}
s = (m * (m + 1) / 2) * (n * (n + 1) / 2);
if ( x < -s || x > s ) {
fprintf( fout, "0\n" );
} else {
fprintf( fout, "%d\n", d[ 1 - ind ][ x + kmax ] );
}
fclose( fin );
fclose( fout );
return 0;
}