Pagini recente » Cod sursa (job #504930) | Cod sursa (job #1890887) | Cod sursa (job #1958688) | Cod sursa (job #2764832) | Cod sursa (job #2114664)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int MOD = 10000;
int D[88205], N, M, X, v[405], K, MAX, D2[88205];
int main(){
fin >> N >> M >> X;
for( int i = 1; i <= N; i++ )
for( int j = 1; j <= M; j++ )
v[++K] = i * j;
MAX = N * (N + 1) * M * (M + 1) / 4;
if( X > MAX || X < -MAX ){
fout << "0\n";
return 0;
}
for( int i = 1; i <= K; i++ ){
D[MAX] = 1;
for( int j = MAX; j >= - MAX; j-- ){
int val1 = ( j - v[i] >= -MAX ) ? D[j - v[i] + MAX] : 0;
int val2 = ( j + v[i] <= MAX ) ? D[j + v[i] + MAX] : 0;
D2[j + MAX] = ( D2[j + MAX] + D[j + MAX] + val1 + val2 ) % MOD;
}
memcpy( D, D2, sizeof(D2) );
memset( D2, 0, sizeof(D2) );
}
fout << D[X + MAX] << "\n";
return 0;
}