Pagini recente » Cod sursa (job #594321) | Cod sursa (job #1668626) | Cod sursa (job #230487) | Cod sursa (job #417465) | Cod sursa (job #2436414)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int st[25],n,m,c=1;
double v[25],p[10000000],s;
bool valid(int k)
{
for(int i=1;i<k;i++)
if(st[k]==st[i])
return 0;
return 1;
}
void afisare(){
p[c]=1;
for(int i=1;i<=m;i++)
p[c]=p[c]*v[st[i]];
c++;
}
void bt(int k){
for(int i=1;i<=n;i++)
{
st[k]=i;
if(valid(k)){
if(k==n)
afisare();
else
bt(k+1);
}
}
}
int main() {
in>>n>>m;
for(int i=1;i<=n;i++)
in>>v[i];
bt(1);
c--;
for(int i=1;i<=c;i++)
s+=p[i]/c;
out<<setprecision(6)<<fixed;
out<<s;
}