Cod sursa(job #1296363)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 21 decembrie 2014 01:24:06
Problema Dezastru Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#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;
}