Pagini recente » Cod sursa (job #1360903) | Cod sursa (job #843827) | Cod sursa (job #3192115) | Cod sursa (job #837622) | Cod sursa (job #264663)
Cod sursa(job #264663)
#include <stdio.h>
const int N = 26;
int n,k,nrs=0;
float pg=0;
float p[N],sol[N];
bool marcat[N];
void citire()
{
scanf ("%d %d",&n,&k);
for (int i = 1; i <= n; ++i)
scanf ("%f",&p [i]);
}
void adaugare_probab_glob()
{
float pp = 1;
for (int i = 1; i <= k; ++i)
pp *= sol [i];
pg += pp;
}
void avansare(int poz)
{
for (int i = 1; i <= n; ++i)
if (!marcat[i])
{
marcat[i]=true;
sol [poz] = p [i];
if (poz == k)
{
adaugare_probab_glob();
++nrs;
}
else
avansare (poz+1);
marcat[i]=false;
}
}
int main()
{
freopen ("dezastru.in","r",stdin);
freopen ("dezastru.out","w",stdout);
citire();
avansare(1);
pg /= nrs;
printf ("%f",pg);
return 0;
}