Pagini recente » Cod sursa (job #377878) | Cod sursa (job #2180901) | Cod sursa (job #701644) | Cod sursa (job #915653) | Cod sursa (job #1219101)
#include <fstream>
#include <iostream>
#define XMAX 80200
using namespace std;
int N,M,X,sum, a[2][XMAX*2];
bool l;
int main(){
ifstream in("diamant.in");
ofstream out("diamant.out");
in >> N >> M >> X;
sum = N*M*(N*M+1)/2;
if (X>sum || X<-sum){
out << 0;
return 0;
}
a[0][XMAX]=a[0][XMAX+1]=a[0][XMAX-1]=1;
int i,j,k;
for (j=2; j<=M; j++){
l=!l;
for (k=-sum; k<=sum; k++){
a[l][XMAX+k]=a[!l][XMAX+k];
a[l][XMAX+k]+=a[!l][XMAX+k-j];
a[l][XMAX+k]+=a[!l][XMAX+k+j];
}
}
for (i=2; i<=N; i++)
for (j=1; j<=M; j++){
l=!l;
for (k=-sum; k<=sum; k++){
a[l][XMAX+k]=a[!l][XMAX+k];
a[l][XMAX+k]+=a[!l][XMAX+k-i*j];
a[l][XMAX+k]+=a[!l][XMAX+k+i*j];
}
}
out << a[l][XMAX+X];
return 0;
}