Pagini recente » Cod sursa (job #1281951) | Cod sursa (job #89876) | Cod sursa (job #357775) | Cod sursa (job #3196529) | Cod sursa (job #1327933)
#include <fstream>
#include<iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n,k,v[26],x=1;
double a[26];
double pr,s;
void afisare(int p)
{
pr=1;
for(int i=1;i<=p;++i)
pr=pr*a[v[i]];
pr=pr/x;
s=s+pr;
}
bool valid(int p)
{
bool ok=true;
for(int i=1;i<p;++i)
if(v[i]==v[p]) ok=false;
return ok;
}
void bk(int p)
{
int pval;
for(pval=1;pval<=n;++pval)
{
v[p]=pval;
if(valid(p))
if(p==k) afisare(p);
else
bk(p+1);
}
}
int main()
{
f>>n>>k;
for(int i=1;i<=n;++i)
{f>>a[i];
x=x*i;}
bk(1);
g<<fixed<<setprecision(6)<<s;
f.close();
g.close();
return 0;
}