Pagini recente » Cod sursa (job #1455426) | Cod sursa (job #2697654) | Cod sursa (job #1657980) | Cod sursa (job #503386) | Cod sursa (job #1696854)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N, K;
double p[30];
int a[30];
bool v[30];
queue <double> q;
void prob(int n, int k)
{
if(k>0)
{
for(int i=1; i<=n; i++)
{
if(!v[i])
{
v[i]=true;
a[K-k+1]=i;
prob(n, k-1);
v[i]=false;
}
}
}
else
{
double mult=1;
for(int i=1; i<=K; i++)
mult=mult*p[a[i]];
q.push(mult);
}
}
int main()
{
fin >> N >> K;
for(int i=1; i<=N; i++)
fin >> p[i];
prob(N, K);
double suma=0;
int ct=0;
while(!q.empty())
{
double x;
x=q.front();
q.pop();
suma+=x;
ct++;
}
fout.precision(6);
fout << suma/ct;
return 0;
}