Pagini recente » Cod sursa (job #1702889) | Istoria paginii runda/795353277152115sfs/clasament | Istoria paginii runda/arena | Diferente pentru runda/oji20-20_dau_leak_la_probleme_smr intre reviziile 2 si 3 | Cod sursa (job #1483653)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
const int maxn = 30;
int v[maxn];
int used[maxn];
double alive[maxn];
int k, n;
double probabilitate = 0;
int n_factorial()
{
int p = 1;
for(int i = 1; i <= n; i++)
p = p * i;
return p;
}
void back(int poz)
{
if(poz == k + 1)
{
double prod = 1;
for(int i = 1; i <= k; i++)
prod = prod * alive[v[i]];
probabilitate += prod;
}
for(int i = 1; i <= n; i++)
{
if(used[i] == 0)
{
used[i] = 1;
v[poz] = i;
back(poz + 1);
used[i] = 0;
}
}
}
int main()
{
in >> n >> k;
for(int i = 1; i <= n; i++)
in >> alive[i];
back(1);
out << probabilitate / n_factorial();
return 0;
}