Cod sursa(job #2159261)

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

# define DIM 32

using namespace std;

int n, k, r;
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 (k > n - k) {
        k = n - k;
        inv = 1;
    }
    for(int i = 0; i < n; ++i) {
        fin>>p[i];
        if (inv) p[i] = 1 - p[i];
    }

    back(1, -1, 0);

    double r = inv ? 1 - s/c : s/c;
    fout<<r;

    return 0;
}