Cod sursa(job #315760)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 17 mai 2009 09:58:49
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
double REZ,p[2<<5],produs,s=0;
int sol[2<<5],uz[2<<5],j=0,val,DIMMAX;
int cond(int k)
{   int i;
for(i=1;i<k;i++)
if(sol[i]==sol[k]) return 0;
return 1;
}
void CALCUL()
{
 int i;produs=1;
     for(i=1;i<=val;i++)
     {
     produs*=p[sol[i]];
     }
     ++j;

    s+=produs;

}
void BACK(int k)
{
 int i;
 if(k==DIMMAX) CALCUL();
 else
    {
     for(i=1;i<=DIMMAX;i++)
	       if(!uz[i])
	         {sol[k]=i;
	          uz[i]=1;
              BACK(k+1);
		      uz[i]=0;
             }
    }
}             
int main()
{int i;
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d%d",&DIMMAX,&val);
    for(i=1;i<=DIMMAX;i++)
       scanf("%lf",&p[i]);
    BACK(1);
    REZ=s/j;
    printf("%.6lf",s/j);
    return 0;
}