Pagini recente » Cod sursa (job #1429639) | Cod sursa (job #866752) | Cod sursa (job #545839) | Clasament usu4 | Cod sursa (job #1746763)
#include <iostream>
#include <cstdio>
#define NR 30
using namespace std;
int vectorCombinari[NR], vectorVizitari[NR], n, k, combinariPosibile;
float vectorInvazii[NR], probabilitateFinala;
void citireDateDeIntrare()
{
scanf("%d%d\n",&n,&k);
for(int i=1; i<=n; i++)
scanf("%f ",&vectorInvazii[i]);
}
void updateProbabilitate()
{
combinariPosibile++;
float probabilitateCurenta=1;
for(int i=1; i<=k; i++)
probabilitateCurenta*=vectorInvazii[vectorCombinari[i]];
probabilitateFinala+=probabilitateCurenta;
}
void generareCombinari(int x)
{
if(x==k+1)
{
updateProbabilitate();
return;
}
for(int i=vectorCombinari[x-1]+1; i<=n-k+x; i++)
{
vectorCombinari[x]=i;
generareCombinari(x+1);
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
citireDateDeIntrare();
generareCombinari(1);
printf("%f",probabilitateFinala/combinariPosibile);
return 0;
}