Pagini recente » Cod sursa (job #1937632) | Cod sursa (job #2368436) | Cod sursa (job #1506652) | Cod sursa (job #1262158) | Cod sursa (job #315760)
Cod sursa(job #315760)
#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;
}