Cod sursa(job #1093561)

Utilizator swim406Teudan Adina swim406 Data 28 ianuarie 2014 11:39:01
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#include <algorithm>
#define nmax 30

using namespace std;

int main() {
    freopen ("dezastru.in", "r", stdin);
    freopen ("dezastru.out", "w", stdout);
    int N, K, i, st[nmax];
    float p[nmax], pr;
    scanf ("%d %d", &N, &K);
    for (i = 1; i <= N; ++i)
        st[i] = i;
    for (i = 1; i <= N; ++i)
        scanf ("%f", &p[i]);
    float result = 0;
    int x = 0;
    do {
        ++x;
        pr = 1.0;
        for (i = 1; i <= K; ++i)
            pr *= p[st[i]];
        result += pr;
    } while (next_permutation(st+1, st+N+1));
    result /= x;
    printf ("%f", result);
    return 0;
}