Cod sursa(job #1906126)

Utilizator danstefanDamian Dan Stefan danstefan Data 6 martie 2017 12:24:58
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
long long nrr;
int n,k,a,b,i,j,V[30],K,in;
double v[30],p,s,dp[30][30];
/*void Sbm(int nr)
{
    if(nr==K)
    {
        p=1;
        for(in=1; in<=K; ++in)
            p*=v[V[in]];
        s+=p/nrr;
    }
    else
    {
        for(int i=V[nr]+1; i<=n-(K-nr-1); ++i)
        {
            V[nr+1]=i;
            Sbm(nr+1);
        }
    }
}*/
int main()
{
    ifstream f ("dezastru.in");
    ofstream g ("dezastru.out");
    f>>n>>K;
    for(i=1; i<=n; ++i)
        f>>v[i];
    if(n-K>K)a=n-K,b=K;
    else a=K,b=n-K;
    nrr=1;
    for(j=1,i=a+1; i<=n||j<=b; ++i,++j)
    {
        if(i<=n)  nrr*=i;
        if(j<=b)  nrr/=j;
    }
    ///  Sbm(0);
    for(i=0; i<=n; ++i)
        dp[i][0]=1;
    for(i=1; i<=n; ++i)
        for(j=1; j<=i; ++j)
            dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*v[i];
    g<<dp[n][K]/nrr;
    return 0;
}