Cod sursa(job #1728995)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 13 iulie 2016 23:23:05
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
# include <bits/stdc++.h>

using namespace std;

int n, k, nr_perm, i, N = 0, v[26];
double a[26], ans, nr;
vector <double> sol;

int main ()
{
    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);

    scanf("%d %d\n", &n, &k);

    for (i = 1; i <= n; ++i)
        scanf("%lf ", &a[i]);

    for (i = 1; i <= n; ++i)
        v[i] = i;

    sol.push_back(0);

    do
    {   nr = 1;

        for (i = 1; i <= k; ++i)
            nr = nr * a[v[i]];

        sol.push_back(nr), ++N, ++nr_perm;
    }
    while (next_permutation(v + 1, v + n + 1));

    ans = 0.00;

    for (i = 1; i <= N; ++i)
        ans += (sol[i] / nr_perm);

    printf("%.6lf\n", ans);

    return 0;

}