Cod sursa(job #35176)

Utilizator n_lichkingSentes Norbert n_lichking Data 21 martie 2007 21:22:27
Problema Diamant Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb

#include<stdio.h>
int n,m,st[40],nrsol;
float x;
FILE *f=fopen("diamant.in","r");
FILE *g=fopen("diamant.out","w");

int sol()
{  float s=0;
  for(register int i=1;i<=m+n;i++)
   if(i<=m)
     {if(st[i]==1)
       s-=i;
      else if(st[i]==3)
              s+=i;
     }
    else {register int i2,j;
           i2=i;
	   j=1;
		while(i2>m)
  		{i2-=m;
                  j++;
		}                         
	if(st[i]==1)
         s-=i2*j;
         else if(st[i]==3)
            s+=i2*j;
         }
if(x!=s)
   return 0;
 return 1;
}

void back(int k)
{

 if(k>n+m)
   {if(sol())
      nrsol++;
   }
  else for(register int i=1;i<=3;i++)
   	{st[k]=i;
         back(k+1);
        }
      
}


int main()
 {fscanf(f,"%d%d%f",&n,&m,&x);
  nrsol=0;
  back(1);
  fprintf(g,"%d",nrsol);

 return 0;

 }