Cod sursa(job #2718066)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 8 martie 2021 13:58:38
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<iostream>
#include<fstream>
using namespace std;

int n, v[26], k;
double p[26], s, fact[26], inm = 1;

void backtr(int poz)
{
    if(poz == k + 1)
    {
        s += (inm * fact[n-k] * fact[k]);
        return;
    }

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


}

int main()
{
    ifstream in("dezastru.in");
    ofstream out("dezastru.out");
    in>>n>>k;
    for(int i = 1; i <=n; i++)
        in>>p[i];
    fact[1] = 1;
    for(int i = 2; i <= n; i++)
        fact[i] = fact[i-1] * i;
    backtr(1);
    out<<s/fact[n];
    return 0;
}