Pagini recente » Cod sursa (job #113197) | Cod sursa (job #1747003) | Cod sursa (job #920530) | Cod sursa (job #1419265) | Cod sursa (job #1415800)
#include <fstream>
using namespace std;
ifstream fin("diamant.in");
ofstream fout("diamant.out");
const int mod= 10000;
const int smax= 44200;
int d[2*smax], aux[2*smax];
int main( ) {
int n, m, x, sum= 0;
fin>>n>>m>>x;
for ( int i= 1; i<=n; ++i ) {
for ( int j= 1; j<=m; ++j ) {
sum+= i*j;
}
}
int sol= 0, news= 0;
if ( (x>=0 && x>sum) || (x<=0 && x<-sum) ) {
sol= 0;
} else {
d[sum]= 1;
for ( int i= 1; i<=n; ++i ) {
for ( int j= 1, nr; j<=m; ++j ) {
nr= i*j; news+= nr;
for ( int cnt= sum+news; cnt>=sum-news; --cnt ) {
if ( d[cnt]>0 && cnt+nr<=2*sum ) {
d[cnt+nr]= (d[cnt+nr]+d[cnt])%mod;
}
aux[cnt]= d[cnt];
}
for ( int cnt= sum-news; cnt<=sum+news; ++cnt ) {
if ( aux[cnt]>0 && cnt-nr>=0 ) {
d[cnt-nr]= (d[cnt-nr]+aux[cnt])%mod;
}
}
}
}
sol= d[x+sum];
}
fout<<sol<<"\n";
return 0;
}