Cod sursa(job #2108842)

Utilizator victorv88Veltan Victor victorv88 Data 18 ianuarie 2018 21:10:57
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <cstdio>
using namespace std;

int n, k, viz[30],nr=0, nrfin;
float a[30],p=1,s=0;

void backt(int x)
{
    if (x==k+1)
    {
        s+=p;
        nr++;
        return;
    }
    for (int i=1; i<=n; i++)
    {
        if (viz[i]==0)
        {
            viz[i]=1;
            p*=a[i];
            backt(x+1);
            p/=a[i];
            viz[i]=0;
        }
    }
}

int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d\n",&n, &k);
    for (int i=1; i<=n; i++)
    {
        scanf("%f ",&a[i]);
    }
    backt(1);
    printf("%.6f",s/nr);
    return 0;
}