Pagini recente » Cod sursa (job #107412) | Cod sursa (job #2326212) | Cod sursa (job #692529) | Cod sursa (job #368617) | Cod sursa (job #34624)
Cod sursa(job #34624)
#include <cstdio>
#include <algorithm>
#define mod 10000
using namespace std;
int n, m, S, smax;
int x[1<<20], N;
int dp[1000000];
#define dp (dp+500000)
void citire()
{
freopen("diamant.in", "r", stdin);
scanf("%d %d %d\n", &n, &m, &S);
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) x[++N]=i*j;//, x[++N]=-i*j, x[++N]=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++) smax+=i*j;
sort(x+1, x+N+1);
}
void dynamic()
{
int i, j;
dp[0]=1;
for(i=1;i<=N;i++)
for(j=smax;j>=-smax;j--)
{
dp[j]+=dp[j-x[i]];
dp[j]+=dp[j+x[i]];
while(dp[j]>mod) dp[j]-=mod;
}
freopen("diamant.out", "w", stdout);
// for(i=-S;i<=S;i++) printf("%d ", dp[i]);
//printf("\n");
printf("%d\n", (dp[S]>>1)%mod);
}
int main()
{
citire();
dynamic();
return 0;
}