Pagini recente » Cod sursa (job #1129225) | Cod sursa (job #1372220) | Cod sursa (job #3033223) | Cod sursa (job #2971424) | Cod sursa (job #2692843)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
const int NMAX = 25;
double dp[NMAX+5];
double v[NMAX+5];
double sol;
bitset<NMAX+5>viz;
int k, cnt, n;
void backt(int p)
{
if( p == k + 1)
{
sol = sol + dp[p-1];
cnt++;
return;
}
for(int i =1; i <=n;i++)
{
if(viz[i] == 0)
{
viz[i] = 1;
dp[p] = dp[p-1] * v[i];
backt(p + 1);
viz[i] = 0;
}
}
}
int main()
{
int i;
fin>>n>>k;
for(int i =1; i<=n;i++)
fin>>v[i];
dp[0] = 1.0;
backt(1);
fout<<fixed<<showpoint;
fout<<setprecision(17);
sol = sol/ (1.0 * cnt);
fout<<sol;
return 0;
}