Cod sursa(job #2168306)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 14 martie 2018 10:23:57
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
#include <bitset>
using namespace std;
int N, p, v[26];
double a[26];
double probabilitate,ct;

void bk(int k)
{
    if(k == p + 1)
    {
        double produs=1;
        for(int i = 1; i<= p; ++i)
            produs*=a[v[i]];
        probabilitate+=produs;
        ct++;
    }
    else
    {
        for(int x = v[k-1] + 1; x<= N - p + k; ++x)
        {
            v[k]=x;
            bk(k+1);
        }
    }
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d%d",&N,&p);
    for(int i = 1; i<= N;++i)
        scanf("%lf",&a[i]);
    bk(1);
    printf("%f",probabilitate/ct);
    return 0;
}