Pagini recente » Istoria paginii utilizator/denisa26 | Monitorul de evaluare | Istoria paginii utilizator/jeanm22 | Istoria paginii utilizator/ngpin04 | Cod sursa (job #2718056)
#include<fstream>
using namespace std;
ifstream cin ("dezastru.in");
ofstream cout ("dezastru.out");
int n, v[26], k;
double p[26], s;
double factorial(int n)
{
double x = 1;
for(int i = 1; i <= n; i++)
x *= i;
return x;
}
void backtr(int poz)
{
if(poz == k + 1)
{
double inm = 1;
for(int i = 1; i <= k; i++)
inm *= p[v[i]];
inm *= factorial(n-k) * factorial(k);
s += inm;
}
for(int i = v[poz - 1] + 1; i <= n; i++)
{
v[poz] = i;
backtr(poz + 1);
}
}
int main()
{
cin>>n>>k;
for(int i = 1; i <=n; i++)
cin>>p[i];
backtr(1);
cout<<s/factorial(n);
return 0;
}