Pagini recente » Cod sursa (job #528559) | Borderou de evaluare (job #2587029) | Cod sursa (job #1241701) | Cod sursa (job #2258811) | Cod sursa (job #2510600)
#include <bits/stdc++.h>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
const int MAX = 2*44100;
const int MOD = 10000;
int n, m, s_dorit, s;
int dp[2][2*44105];
void solve()
{
int contor=0;
dp[0][MAX/2]=1;
for (int i=1; i<=n; ++i)
{
for (int j=1; j<=m; ++j)
{
contor++;
for (int t=0; t<=MAX; ++t)
{
dp[contor%2][t]=0;
if (t-i*j>=0)
dp[contor%2][t]+=dp[(contor+1)%2][t-i*j], dp[contor%2][t]%=MOD;
if (t+i*j<=MAX)
dp[contor%2][t]+=dp[(contor+1)%2][t+i*j], dp[contor%2][t]%=MOD;
dp[contor%2][t]+=dp[(contor+1)%2][t], dp[contor%2][t]%=MOD;
}
}
}
g << dp[contor%2][s_dorit+MAX/2];
}
int main()
{
f >> n >> m >> s_dorit;
if (s>MAX/2 || s<-MAX/2)
g << 0;
else
solve();
return 0;
}