Pagini recente » Cod sursa (job #1468895) | Cod sursa (job #1063433) | Cod sursa (job #1723567) | Cod sursa (job #32631) | Cod sursa (job #3287507)
#include <bits/stdc++.h>
#define mod 10000
using namespace std;
int n,m,x,s,c,sn;
short int dp[2][88205];
int main()
{
ifstream f ("diamant.in");
ofstream g ("diamant.out");
f>>n>>m>>x;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
s+=i*j;
if ((x>0 && x>s) || (x<0 && x<-s))
{
g<<0;
return 0;
}
dp[0][s]=1;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
{
c++;
sn+=i*j;
for (int sum=0; sum<=2*s; sum++)
dp[c%2][sum]=dp[1-c%2][sum];
for (int sum=s-sn; sum<=s+sn; sum++)
{
if (sum+i*j<=2*s) dp[c%2][sum]=(dp[c%2][sum]+dp[1-c%2][sum+i*j])%mod;
if (sum-i*j>=0) dp[c%2][sum]=(dp[c%2][sum]+dp[1-c%2][sum-i*j])%mod;
}
}
g<<dp[c%2][s+x];
}