Cod sursa(job #311111)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 2 mai 2009 16:03:01
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
double REZ,p[10000],produs,s=0;
int sol[10000],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;
     for(i=1;i<=DIMMAX;i++)
	       {sol[k]=i;
		  if(cond(k))
		  if(k==DIMMAX) CALCUL();
		  else
		  BACK(k+1);
	       }

}

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;
}