Pagini recente » Cod sursa (job #1855192) | Istoria paginii runda/prega_oji2015_ix_6/clasament | Cod sursa (job #83792) | Cod sursa (job #520866) | Cod sursa (job #1869564)
#include <bits/stdc++.h>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
const int SMax = 44101;
const int mod = 10000;
int n,m,x,s;
int V[SMax];
int mem[3][SMax + 3];
void add(int &x, int y){
x += y;
if(x > mod)
x -= mod;
}
int main()
{
f >> n >> m >> x;
mem[1][0] = 1;
mem[1][1] = 1;
for(int i = 1; i <= n; ++i){
for(int j = 1; j <= m; ++j){
if(i == 1 && j == 1)
continue;
for(int s = 0; s <= SMax; ++s){
if(abs(s - i * j) <= SMax){
add(mem[2][s],mem[1][abs(s - i * j)]);
}
if(s + i * j <= SMax){
add(mem[2][s],mem[1][s + i * j]);
}
add(mem[2][s],mem[1][s]);
}
for(int s = 0; s <= SMax; ++s){
mem[1][s] = mem[2][s];
mem[2][s] = 0;
}
}
}
if(x > SMax || x < -SMax){
g << 0 << '\n';
return 0;
}
g << mem[1][abs(x)] << '\n';
return 0;
}