Cod sursa(job #2068669)

Utilizator Laura_CorneiLaura Maria Cornei Laura_Cornei Data 18 noiembrie 2017 10:19:52
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <iomanip>
#define nmax 30
using namespace std;
fstream f1("dezastru.in", ios::in);
fstream f2("dezastru.out", ios::out);
int n, m, v[nmax];
double p[nmax], rez, prod, f[nmax];
void bkt(int k)
{
    int i;
    for(i=v[k-1]+1; i<=n; i++)
    {
        v[k]=i;
        if(k<=m)
        {
            if(k==m)
            {
                prod=1.0;
                for(int j=1; j<=m; j++)
                  prod*=p[v[j]];
                rez+=prod*f[k]/f[n]*f[n-k];
            }
            else bkt(k+1);
        }
    }
}
void fact()
{
    int i;
    f[1]=1;
    for(i=2; i<=n; i++)
        f[i]=f[i-1]*i;
}
int main()
{
    int i;
    f1>>n>>m;
    fact();
    for(i=1; i<=n; i++) f1>>p[i];
    bkt(1);
    f2<<fixed<<setprecision(6)<<rez;
    return 0;
}