Cod sursa(job #2068651)

Utilizator Laura_CorneiLaura Maria Cornei Laura_Cornei Data 18 noiembrie 2017 10:11:29
Problema Dezastru Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 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];
long long f[nmax];
long double p[nmax], rez, prod;
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-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/f[n];
    return 0;
}