Cod sursa(job #2718061)

Utilizator andi1010Brinceanu Andi andi1010 Data 8 martie 2021 13:52:33
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
using namespace std;

ifstream cin ("dezastru.in");
ofstream cout ("dezastru.out");

int n, v[26], k;
double p[26], s;

double factorial(int n)
{
    double x = 1;
    for(int i = 1; i <= n; i++)
        x *= i;
    return x; 

}

void backtr(int poz)
{
    if(poz == k + 1)
    {
        double inm = 1;
        for(int i = 1; i <= k; i++)
            inm *= p[v[i]];
        inm *= factorial(n-k) * factorial(k);
        s += inm;
        return;
    }

    for(int i = v[poz - 1] + 1; i <= n; i++)
    {
        v[poz] = i;
        backtr(poz + 1);
    }


}

int main()
{
    cin>>n>>k;
    for(int i = 1; i <=n; i++)
        cin>>p[i];
    backtr(1);
    cout<<s/factorial(n);
    return 0;
}