Cod sursa(job #2283751)

Utilizator cristina-criCristina cristina-cri Data 15 noiembrie 2018 21:04:28
Problema Dezastru Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <cstdio>

using namespace std;

int n, sol[12], m, viz[12];
float a[12], s, nr=1;

void prob()
{
    float p=1;
    for(int i=0; i<m; i++)
        p*=a[sol[i]];
    s+=p;
}

void bkt(int k)
{
    if(k == n)
    {
        prob();
        return;
    }
    for(int v=1; v<=n; v++)
    {
        if(!viz[v])
        {
            sol[k]=v;
            viz[v]=1;
            bkt(k+1);
            viz[v]=0;
        }
    }
}

int main()
{

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

    scanf("%d %d", &n, &m);

    for(int i=1; i<=n; i++)
    {
        scanf("%f", &a[i]);
        nr*=i;
    }
    bkt(0);
    s/=nr;
    printf("%.6f", s);

    return 0;
}