Pagini recente » Cod sursa (job #698642) | Cod sursa (job #2548668) | Cod sursa (job #1636193) | Cod sursa (job #45800) | Cod sursa (job #871414)
Cod sursa(job #871414)
#include <fstream>
using namespace std;
const int Nmax = 45000;
const int Mod = 10000;
int N,M,K;
int Sum;
int Poz[2][Nmax];
int Neg[2][Nmax];
#define A(i,j) ( j < 0 ? Neg[i][-(j)] : Poz[i][(j)] )
ifstream F("diamant.in");
ofstream G("diamant.out");
int main()
{
F>>N>>M>>K;
for (int i=1;i<=N;++i)
for (int j=1;j<=M;++j)
Sum += i * j;
if ( Sum < max(K,-K) )
{
G<<"0\n";
return 0;
}
bool step = 1;
A(0,0) = 1;
for (int i=1;i<=N;++i)
for (int j=1;j<=M;++j,step^=1)
{
bool last = step ^ 1;
int Stop = -Sum-1;
int X=i*j;
for (int k=Sum;k>Stop;--k)
{
A(step,k) = A(last,k-X) + A(last,k) + A(last,k+X);
A(step,k) %= Mod;
}
}
G<<A( step^1 , K );
}