Pagini recente » Cod sursa (job #1746141) | Cod sursa (job #1060466) | Cod sursa (job #451508) | Cod sursa (job #2035330) | Cod sursa (job #974285)
Cod sursa(job #974285)
#include <fstream>
#define In "diamant.in"
#define Out "diamant.out"
#define Smax 44100
#define MOD 10000
using namespace std;
int Dp[Smax+2], N, M, S;
inline void Read()
{
ifstream f(In);
f>>N>>M>>S;
if(S<0)
S*=-1;
f.close();
}
inline void Solve()
{
int i, j, k = (N*M*(N+1)*(M+1)>>2), Last=0;
if(S>k)
{
S = 0;
return ;
}
S = k - S;
Dp[0] = 1;
for(i = 1;i <= N;++i)
for(j = 1 ;j <= M; ++j)
{
for(k = Last;k >= 0; --k)
if(k+i*j<=S)
Dp[k+i*j] = (Dp[k+i*j]+Dp[k])%MOD;
Last+=i*j;
for(k = Last;k >= 0; --k)
if(k+2*i*j<=S)
Dp[k+2*i*j] = (Dp[k+2*i*j]+Dp[k])%MOD;
Last+=2*i*j;
}
}
inline void Write()
{
ofstream g(Out);
g<<Dp[S]<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}