Pagini recente » Cod sursa (job #972964) | Istoria paginii runda/evaluare_cex_sv/clasament | Istoria paginii runda/cnmnarad2 | Cod sursa (job #1604076) | Cod sursa (job #1403676)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int N,K; double P[30][30],a[30];
double ff(){
double res=1;
for (int i=2; i<=N; i++){
if (i<=K) res*=i;
if (i<=N-K) res*=i;
res/=i;
}
return res;
}
int main(){
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
fin >> N >> K;
int i,j;
for (i=1; i<=N; i++) fin >> a[i];
for (i=0; i<=N; i++) P[i][0]=1;
for (i=1; i<=N; i++)
for (j=1; j<=min(i,K); j++)
P[i][j]=P[i-1][j]+P[i-1][j-1]*a[i];
fout << std::fixed << std::setprecision(7) << P[N][K]*ff();
return 0;
}