Cod sursa(job #1744748)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 20 august 2016 12:40:10
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <cstdio>

using namespace std;

int K,N,sol[30],nr;

double v[30];
double sum;

void Read()
{
    scanf("%d%d",&N,&K);

    for(int i=1; i<=N; i++)
        scanf("%lf",&v[i]);

}

void solve()
{
    double p=1;

    for(int i=1; i<=K; i++)
        p*=v[sol[i]];

    sum+=p;
    nr++;

}

void BK(int z)
{
    if(z==K+1)
    {
        solve();
        return;
    }

    for(int v=sol[z-1]+1; v<=N-K+z; ++v)
    {
        sol[z]=v;
        BK(z+1);
    }
}

void Write()
{
    printf("%lf",sum/nr);
}

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

    Read();
    BK(1);
    Write();

    return 0;
}