Pagini recente » Cod sursa (job #1722941) | Cod sursa (job #2986835) | Cod sursa (job #838720) | Cod sursa (job #193998) | Cod sursa (job #1869562)
#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 * 2 + 3];
void add(int &x, int y){
x += y;
if(x > mod)
x -= mod;
}
int main()
{
f >> n >> m >> x;
mem[1][-1 + SMax] = 1;
mem[1][0 + SMax] = 1;
mem[1][1 + SMax] = 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 <= 2 * SMax; ++s){
if(s - i * j >= 0)
add(mem[2][s],mem[1][s - i * j]);
if(s + i * j <= 2 * SMax)
add(mem[2][s],mem[1][s + i * j]);
add(mem[2][s],mem[1][s]);
}
for(int s = 0; s <= 2 * 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][x + SMax] << '\n';
return 0;
}