Pagini recente » Cod sursa (job #1956675) | Cod sursa (job #2723332) | Cod sursa (job #1441241) | Cod sursa (job #1590027) | Cod sursa (job #2575959)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int N,M,X,sum,nr,v[405],cnt;
const int Mod=10000,Mx=44100;
int dp[405][44500];
int main()
{
f>>N>>M>>X;
for(int i=1; i<=N; i++)
for(int j=1; j<=M; j++)
{
sum+=(i*j);
v[++cnt]=i*j;
}
if(X<0)
X*=-1;
if(sum==abs(X))
g<<1;
else
{
if(sum<X)
g<<0;
else
{
dp[0][0]=1;
for(int i=1; i<=M*N; i++)
{
for(int j=0; j<=sum; j++)
{
dp[i][j]=dp[i-1][j];
if(j-v[i]>=0)
dp[i][j]=(dp[i][j]+dp[i-1][j-v[i]])%Mod;
if(j+v[i]<=sum)
dp[i][j]=(dp[i][j]+dp[i-1][j+v[i]])%Mod;
if(dp[i][j])
cout<<i<<" "<<j<<" = "<<dp[i][j]<<"\n";
}
}
g<<dp[N*M][X];
}
}
return 0;
}