Cod sursa(job #2037851)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 12 octombrie 2017 21:09:33
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");
int n,k,A[26],F[26],nr,i;
double P[26],sum;
double suma()
{
    int i;
    double p=1;
    for(i=1;i<=k;i++)
        p*=P[A[i]];
    return p;
}
void bk(int poz)
{
    int i,j;
    if(poz==k+1)
    {
        sum+=suma();
        nr++;
    }
    else
        for(i=1;i<=n;i++)
            if(F[i]==0 && i>A[poz-1])
            {
                A[poz]=i;
                F[i]=1;
                bk(poz+1);
                F[i]=0;
            }
}
int main()
{
    fi>>n>>k;
    for(i=1;i<=n;i++)
        fi>>P[i];
    bk(1);
    fo<<(double)sum/nr;
    fi.close();
    fo.close();
    return 0;
}