Cod sursa(job #130352)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 31 ianuarie 2008 21:57:23
Problema Diamant Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
long int n,m,x,zero,i,j,k,v[500],vm[500],*vv,*vn,*va,s1[90000],s2[90000];
int main()
{
	FILE *f,*g;f=fopen("diamant.in","r");g=fopen("diamant.out","w");
	fscanf(f,"%ld%ld%ld",&n,&m,&x);
	zero=44102;vv=s1;vn=s2;
	for(i=1;i<=n;i++)
	 for(j=1;j<=m;j++)
	  {k++;v[k]=i*j;vm[k]=vm[k-1]+v[k];}
	vv[0]=1;
	for(i=1;i<=k;i++)
	 { for(j=zero-vm[k-1];j<=zero+vm[k-1];j++)
	   { if(vv[j])
	     { vn[j-v[k]]+=vv[j];
	       vn[j]+=vv[j];
	       vn[j+v[k]]+=vv[j];
	       vv[j]=0;
	     }
	   }
	   va=vv;vv=vn;vn=va;
	 }
	fprintf(g,"%ld\n",vv[zero+x]);
	fcloseall();
	return 0;
}