Pagini recente » Cod sursa (job #2625536) | Cod sursa (job #2657216) | Monitorul de evaluare | Cod sursa (job #2457662) | Cod sursa (job #1296363)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
double DP[30][30];
double Array[30];
long long Fact[30];
int N,K;
void Read()
{
int i;
f>>N>>K;
for(int i=1;i<=N;i++)
f>>Array[i];
}
void Solve()
{
int i,j;
Fact[0]=1;
for(int i=0;i<=N;i++)
DP[i][0]=1;
for(long long i=1;i<=N;i++)
Fact[i]=Fact[i-1]*i;
for(int i=1;i<=N;i++)
for(int j=1;j<=i;j++)
DP[i][j]=DP[i-1][j]+DP[i-1][j-1]*Array[i];
long long counter=1;
for(int i=N;i>=N-K+1;i--)
counter*=i;
g<<fixed<<setprecision(6)<<(DP[N][K]/((double)Fact[N]/((double)Fact[K]*(double)Fact[N-K])))<<"\n";
}
int main()
{
Read();
Solve();
return 0;
}