Cod sursa(job #2159245)

Utilizator loginLogin Iustin Anca login Data 10 martie 2018 20:27:20
Problema Dezastru Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
# include <fstream>
# include <iostream>

# define DIM 32

using namespace std;

int n, k;
double p[DIM];
double s = 0;
int c = 0;

void back (double pp, int i, int l) {
    if (l == k) {
        s += pp;
        ++c;
        return;
    }

    for (++i;i < n;++i) {
        back(pp * p[i], i, l + 1);
    }
}

int main() {
    ifstream fin ("dezastru.in");
    ofstream fout ("dezastru.out");

    int inv = 0;
    fin>>n>>k;

    if (n - k < k) {
        inv = 1;
        k = n - k;
    }

    for(int i = 0; i < n; ++i) {
        fin>>p[i];
        if (inv) p[i] = 1 - p[i];
    }

    back(1, -1, 0);

    fout<<s/c;

    return 0;
}