Pagini recente » Cod sursa (job #2354617) | Cod sursa (job #1305900) | Cod sursa (job #1159020) | Cod sursa (job #757138) | Cod sursa (job #1759650)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
const int lim=45000;
const int maxn=401;
const int modulo=10000;
int N,M,G;
int v[maxn],R[2*lim],p[2*lim],m[2*lim];
#define R (R+lim)
#define p (p+lim)
#define m (m+lim)
int main()
{
int k=0,s=0,i,j;
f>>N>>M>>G;
for (i=1;i<=N;i++)
for (j=1;j<=M;j++)
{v[++k]=i*j;s+=i*j;}
if (G>s||G<-s) {g<<0;return 0;}
R[0]=1;
for (i=1;i<=k;i++)
{
for (j=-s;j<=s;j++)
if (R[j]!=0)
{
p[j+v[i]]+=R[j];
m[j-v[i]]+=R[j];
}
for (j=-s;j<=s;j++)
{
R[j]=(R[j]+p[j]+m[j])%modulo;
p[j]=0;
m[j]=0;
}
}
g<<R[G];
}