Cod sursa(job #296212)

Utilizator ghiutaalexGhiuta Alex ghiutaalex Data 4 aprilie 2009 14:14:51
Problema Diamant Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
FILE*f=fopen("diamant.in","r");
FILE*g=fopen("diamant.out","w");

int n,m,a[21][21],v[3]={-1,0,1},r;
long x,s;

void bkt(int k,int p)
{
 int i;
 for(i=0;i<=2;i++)
	{
         a[k][p]=v[i];
         s+=a[k][p]*k*p;
         if(k==n) if(p==m) {
                            if(s==x) r=(r+1)%10000;
                           }
                  else bkt(k,p+1);
	 else if(p==m) bkt(k+1,1);
	      else bkt(k,p+1);
	 s-=a[k][p]*k*p;
	}
}

int main()
{
 fscanf(f,"%d%d%ld",&n,&m,&x);
 if(x>44100) fprintf(g,"0\n");
 else {
       bkt(1,1);
       fprintf(g,"%d\n",r);
      }
 fcloseall();
 return 0;
}