Pagini recente » Cod sursa (job #2528329) | Cod sursa (job #2883064) | Cod sursa (job #261788) | Cod sursa (job #1134202) | Cod sursa (job #423051)
Cod sursa(job #423051)
#include<stdio.h>
FILE *f,*g;
int n,m,v[460],p[460],x,contor=0,val=0;
int alege(int k)
{
v[k]++;
return v[k]<=1;
}
void back()
{
int k=1,a;
v[1]=-2;
val=-2;
while(k)
{
val=val-v[k]*p[k];
a=alege(k);
val+=v[k]*p[k];
if(!a)
{
val-=v[k]*p[k];
k--;
}
else
if(k==n*m)
{
if(val==x)
{
contor++;
contor=contor%10000;
}
}
else
{
k++;
v[k]=-2;
val+=-2*p[k];
}
}
}
int main() {
int q,i,j;
f=fopen("diamant.in","r");
fscanf(f,"%d%d%d",&n,&m,&x);
fclose(f);
q=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
q++;
p[q]=i*j;
}
back();
g=fopen("diamant.out","w");
fprintf(g,"%d\n",contor);
fclose(g);
return 0;}