Pagini recente » Cod sursa (job #2740370) | Cod sursa (job #1860852) | Cod sursa (job #2628302) | Cod sursa (job #284315) | Cod sursa (job #873029)
Cod sursa(job #873029)
#include <fstream>
#include <queue>
#include <cstdlib>
#define maxn 100020
#define mij 50000
#define mod 10000
int vec[maxn],aux[maxn];
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
queue<int> q;
int sol;
int n,m,s,maxval,maxi,mini,minval,sol2;
int abs(int x)
{
if(x<0) return -x;
return x;
}
void read()
{
in>>n>>m>>s;
if(s>50000){out<<"0";exit(0);}
vec[mij]=1;
int maxi=0,mini=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
for(int t=mini;t<=maxi;t++)
{
if(vec[mij+t]==0) continue;
int x=t+i*j;
int y=t;
int z=t-i*j;
aux[mij+x]=(aux[mij+x]%mod+vec[mij+t]%mod)%mod;
aux[mij+y]=(aux[mij+y]%mod+vec[mij+t]%mod)%mod;
aux[mij+z]=(aux[mij+z]%mod+vec[mij+t]%mod)%mod;
}
for(int p=0;p<maxn;p++) vec[p]=aux[p],aux[p]=0;
mini-=i*j,maxi+=i*j;
}
}
int main()
{
read();
out<<vec[s+mij]%mod;
return 0;
}