Pagini recente » Cod sursa (job #2761719) | Cod sursa (job #2778359) | Cod sursa (job #3242130) | Cod sursa (job #3251731) | Cod sursa (job #3289635)
#include <bits/stdc++.h>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
double a[30],sum;
bool fr[30];
int sol[30],n,p;
void aduna()
{
double prod=1;
for (int i=1; i<=p; i++ )
prod*=a[sol[i]];
sum+=prod;
}
void back(int k)
{
if ( k>n )
aduna();
else
{
for (int i=1; i<=n; i++ )
{
if ( !fr[i] )
{
sol[k]=i;
fr[i]=true;
back(k+1);
fr[i]=false;
}
}
}
}
int main()
{
f >> n >> p;
for (int i=1; i<=n; i++ )
f >> a[i];
double fact=1;
for (int i=1; i<=n; i++ )
fact=fact*i;
back(1);
g << fixed << setprecision(6) << sum/fact;
return 0;
}