Pagini recente » Cod sursa (job #2179132) | Cod sursa (job #2491177) | Cod sursa (job #3130163) | Cod sursa (job #2592081) | Cod sursa (job #1741667)
#include<fstream>
#include<iomanip>
#include<stdlib.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
float s,p=1,v[26],finalv;
long long fact[26];
int n,k,i,x[26];
void backt(int i){
int j;
if (i>k){
s=s+p*(float)fact[k];
}
else{
for (j=x[i-1]+1;j<=n;j++){
x[i]=j;
p=p*v[x[i]];
backt(i+1);
p=p/v[x[i]];
}
}
}
int main(){
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
fin.close();
fact[0]=1;
for (i=1;i<=n;i++)
fact[i]=fact[i-1]*i;
x[0]=0;
backt(1);
finalv=s/(float)fact[n];
fout<<fixed<<setprecision(6)<<finalv;
fout.close();
return 0;
}