Pagini recente » Cod sursa (job #643530) | Cod sursa (job #2952941) | Cod sursa (job #3205417) | Cod sursa (job #867726) | Cod sursa (job #2692844)
#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;
int viz[NMAX+5];
int k, cnt, n;
void backt(int p)
{
if( p == k + 1)
{
sol = sol + dp[p-1];
cnt++;
return;
}
for(int i =viz[p-1] + 1; i <=n;i++)
{
viz[p] = i;
dp[p] = dp[p-1] * v[i];
backt(p + 1);
}
}
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;
}