Cod sursa(job #1219405)

Utilizator EpictetStamatin Cristian Epictet Data 14 august 2014 08:07:04
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N, K, nr, V[30], fr[30];
double sum, Pb[30];

inline void Gen(int k)
{
    if (k == N + 1)
    {
        double prod = 1;
        for (int i=1; i<=K; i++)
            prod = prod * Pb[V[i]];

        sum += prod;
        nr++;
    }
    else
    {
        for (int i=1; i<=N; i++)
        {
            if (!fr[i])
            {
                fr[i] = 1;
                V[k] = i;
                Gen(k + 1);
                fr[i] = 0;
            }
        }
    }
}

int main()
{
    fin >> N >> K;
    for (int i=1; i<=N; i++) fin >> Pb[i];

    Gen(1);

    fout << setprecision(6) << fixed << sum / nr << '\n';
    fout.close();
    return 0;
}