Pagini recente » Cod sursa (job #3206449) | Cod sursa (job #2476538) | Cod sursa (job #2284379) | Cod sursa (job #1659618) | Cod sursa (job #1311231)
#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;
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;
}
d[1][OFFSET + 1]=d[1][OFFSET - 1]=d[1][OFFSET] = 1;
for(int p = 2; p<=m*n; p++){
for(int k = -OFFSET + v[p];k<=OFFSET - v[p];k++){
d[p][k + OFFSET] += d[p-1][k + OFFSET - v[p]];
d[p][k + OFFSET] += d[p-1][k + OFFSET + v[p]];
d[p][k + OFFSET] += d[p-1][k + OFFSET];
}
for(int k = -OFFSET; k<= -OFFSET + v[p];k++){
d[p][k + OFFSET] += d[p-1][k + OFFSET];
}
for(int k = OFFSET - v[p]; k<= OFFSET;k++){
d[p][k + OFFSET] += d[p-1][k + OFFSET];
}
}
out << d[n*m][x + OFFSET];
return 0;
}