Cod sursa(job #1093557)

Utilizator swim406Teudan Adina swim406 Data 28 ianuarie 2014 11:35:27
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 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[nmax];
    scanf ("%d %d", &N, &K);
    for (i = 1; i <= N; ++i)
        st[i] = i;
    for (i = 1; i <= N; ++i)
        scanf ("%f", &p[i]);
    int x = 0;
    do {
        pr[++x] = 1;
        for (i = 1; i <= K; ++i)
            pr[x] *= p[st[i]];
    } while (next_permutation(st+1, st+N+1));
    float result = 0;
    for (i = 1; i <= x; ++i)
        result += pr[i];
    result /= x;
    printf ("%f", result);
    return 0;
}