Pagini recente » Cod sursa (job #606684) | Cod sursa (job #1897052) | Cod sursa (job #1435532) | Cod sursa (job #2004303) | Cod sursa (job #354009)
Cod sursa(job #354009)
#include<cstdio>
#define N 26
short int n,k,sol[N],inceput,t;
double v[N],prod,g;
bool viz[N];
void citire()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%hd%hd",&n,&k);
for (short int i=1; i<=n; ++i)
scanf("%lf",&v[i]);
}
void back(short int p)
{
if (p==k+1)
{
if (sol[k]==k)
++inceput;
g=1;
for (short int i=1; i<=k; ++i)
g*=v[sol[i]];
v[0]+=g;
++t;
return;
}
for (int i=1; i<=n; ++i)
if (!viz[i]&&sol[p-1]<i)
{
viz[i]=true;
sol[p]=i;
back(p+1);
viz[i]=false;
if (i>inceput)
viz[i]=false;
}
}
int main()
{
citire();
prod=1;
back(1);
v[0]/=t;
//prod=v[0]/prod;
printf("%.6lf",v[0]);
return 0;
}