Pagini recente » Cod sursa (job #2355863) | Cod sursa (job #881214) | Cod sursa (job #2441298) | Cod sursa (job #1444627) | Cod sursa (job #1692236)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n, k;
double v[26], a[26][26];
void init(){
for(int i=0; i<=n; i++)a[i][0]=1;
}
long long factorial(int x){
long long p=1;
for(int i=1; i<=x; i++)p*=i;
return p;
}
void read(){
in>>n>>k;
for(int i=1; i<=n; i++)in>>v[i];
init();
}
void dp(){
for(int i=1; i<=n; i++){
for(int j=1; j<=k; j++){
a[i][j]=a[i-1][j]+a[i-1][j-1]*v[i];
}
}
long long nfact, kfact, n_kfact;
nfact=factorial(n);
kfact=factorial(k);
n_kfact=factorial(n-k);
out<<fixed<<setprecision(6)<<a[n][k]/(nfact/(kfact*n_kfact));
}
int main(){
read();
dp();
return 0;
}