Pagini recente » Cod sursa (job #3262429) | Cod sursa (job #3259185) | Cod sursa (job #6264) | Cod sursa (job #2926811) | Cod sursa (job #2718070)
#include<iostream>
#include<fstream>
using namespace std;
int n, v[26], k;
double p[26], s, fact[26];
void backtr(int poz, double inm)
{
if(poz == k + 1)
{
s += inm;
return;
}
for(int i = v[poz - 1] + 1; i <= n; i++)
{
v[poz] = i;
backtr(poz + 1, inm * p[i]);
}
}
int main()
{
ifstream in("dezastru.in");
ofstream out("dezastru.out");
in>>n>>k;
for(int i = 1; i <=n; i++)
in>>p[i];
fact[1] = 1;
for(int i = 2; i <= n; i++)
fact[i] = fact[i-1] * i;
backtr(1, fact[n-k] * fact[k]);
out<<s/fact[n];
return 0;
}