Pagini recente » Cod sursa (job #1133030) | Cod sursa (job #2498853) | Cod sursa (job #1652948) | Cod sursa (job #1007509) | Cod sursa (job #1038802)
#include<stdio.h>
#include<stdbool.h>
int n,k,x[26];
long long fac;
float dez[26],rez;
void print (int i)
{
int l;
float dd;
dd=dez[x[1]];
for (l = 2; l <= i; l++)
dd*=dez[x[l]];
rez+=dd;
}
int good(int j,int i)
{
int l;
for(l=1;l<i;l++)
if(x[l]==j)
return 0;
return 1;
}
void Ribbon (int i)
{
int j;
for (j = 1; j <= n; j++)
{
if(good(j,i))
{
x[i] = j;
if(i==k)
{
print(i);
}
else Ribbon(i+1);
}
}
}
int main()
{
int i;
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%i %i",&n,&k);
for(i=1;i<=n;i++)
scanf("%f",&dez[i]);
Ribbon(1);
fac=1;
for(i=1;i<=n;i++)
fac*=i;
printf("%.6f",(float)rez/fac);
return 0;
}