Pagini recente » Cod sursa (job #3170342) | Cod sursa (job #1264606) | Cod sursa (job #2903316) | Cod sursa (job #2881769) | Cod sursa (job #1838032)
#include <bits/stdc++.h>
#define MAXSUM 50000
#define MOD 10000
int dp[2][2*MAXSUM];
int v[400];
int main(){
std::ifstream fin("diamant.in");
std::ofstream fout("diamant.out");
int n,m,i,j,k,r,x,sum;
fin >> n >> m >> x;
k=sum=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++){
sum+=i*j;
v[k++]=i*j;
}
if(x>sum||x<-sum)
fout << 0;
else{
std::sort(v,v+k);
dp[1][MAXSUM]=1;
sum=0;
for(r=0;r<k;r++){
sum+=v[r];
for(i=MAXSUM-sum;i<=MAXSUM+sum;i++)
dp[r&1][i]=(dp[1-r&1][i]+dp[1-r&1][i-v[r]]+dp[1-r&1][i+v[r]])%MOD;
}
fout << dp[1-r&1][x+MAXSUM];
}
fin.close();
fout.close();
return 0;
}