Cod sursa(job #1483654)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 9 septembrie 2015 18:16:06
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
const int maxn = 30;
int v[maxn];
int used[maxn];
double alive[maxn];
int k, n;
double probabilitate = 0;
double nr;

void back(int poz, double prod)
{
    if(poz == k + 1)
    {
        ++ nr;
        probabilitate += prod;
    }
    for(int i = 1; i <= n; i++)
    {
        if(used[i] == 0)
        {
            used[i] = 1;
            v[poz] = i;
            back(poz + 1, prod * alive[i]);
            used[i] = 0;
        }
    }
}
int main()
{
    in >> n >> k;
    for(int i = 1; i <= n; i++)
        in >> alive[i];
    back(1, 1);
    out << probabilitate / nr;
    return 0;
}