Pagini recente » Cod sursa (job #2934224) | Cod sursa (job #1311642) | Cod sursa (job #1540551) | Cod sursa (job #1887683) | Cod sursa (job #974236)
Cod sursa(job #974236)
#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;
S = (N*M*(N+1)*(M+1)>>2)-S;
f.close();
}
inline void Solve()
{
if(S>Smax)
return ;
int i, j, k, Last=0;
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;
if(k+2*i*j<=S)
Dp[k+2*i*j] = (Dp[k+2*i*j]+Dp[k])%MOD;
}
Last+=i*j;
}
}
inline void Write()
{
ofstream g(Out);
g<<Dp[S]<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}