Cod sursa(job #1746763)

Utilizator VladG26Ene Vlad-Mihai VladG26 Data 23 august 2016 21:15:19
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <cstdio>
#define NR 30
using namespace std;
int vectorCombinari[NR], vectorVizitari[NR], n, k, combinariPosibile;
float vectorInvazii[NR], probabilitateFinala;

void citireDateDeIntrare()
{
    scanf("%d%d\n",&n,&k);
    for(int i=1; i<=n; i++)
        scanf("%f ",&vectorInvazii[i]);
}

void updateProbabilitate()
{
    combinariPosibile++;
    float probabilitateCurenta=1;
    for(int i=1; i<=k; i++)
        probabilitateCurenta*=vectorInvazii[vectorCombinari[i]];
    probabilitateFinala+=probabilitateCurenta;
}


void generareCombinari(int x)
{
    if(x==k+1)
    {
        updateProbabilitate();
        return;
    }
    for(int i=vectorCombinari[x-1]+1; i<=n-k+x; i++)
    {
        vectorCombinari[x]=i;
        generareCombinari(x+1);
    }
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    citireDateDeIntrare();
    generareCombinari(1);
    printf("%f",probabilitateFinala/combinariPosibile);
    return 0;
}