Pagini recente » Cod sursa (job #3189882) | Cod sursa (job #2113668) | Cod sursa (job #1990541) | Cod sursa (job #1009609) | Cod sursa (job #1311293)
#include <fstream>
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
const int MAXX = 44100;
const int MOD = 10000;
int n , m , x, OFFSET, LIMIT;
short int d[441][2 * MAXX + 1];
int v[441];
int main()
{
in >> n >> m >> x;
int p=1;
for (int i = 1 ; i<=n; i++)
for(int j = 1; j<=m; j++){
v[p++]=i*j;
OFFSET += i*j;
}
LIMIT = OFFSET;
if (x> LIMIT || x<-LIMIT){
out << 0;
return 0;
}
d[1][OFFSET + 1]=d[1][OFFSET - 1]=d[1][OFFSET] = 1;
for(int p = 2; p<=m*n; p++){
for(int k = -LIMIT; k<= LIMIT; k++){
if (k - v[p] >= -LIMIT)
d[p][k + OFFSET] += d[p-1][k + OFFSET - v[p]];
if (k + v[p] <= LIMIT)
d[p][k + OFFSET] += d[p-1][k + OFFSET + v[p]];
d[p][k + OFFSET] += d[p-1][k + OFFSET];
d[p][k+OFFSET]%=MOD;
}
}
out << d[n*m][x + OFFSET];
return 0;
}