Cod sursa(job #1761656)

Utilizator CrystyAngelDinu Cristian CrystyAngel Data 22 septembrie 2016 17:39:33
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

int v[30],n,i,nr,k;
double pr[30],S;

bool valid(int k,int x)
{
    for(int i=1; i<k; ++i)
        if(v[i]==x)
            return 0;
    return 1;
}

void bkt(int p,double s)
{
    if(p==k+1)
        {
            ++nr;
            S+=s;
        }
    else
    for(int i=1; i<=n; ++i)
    {
        if(valid(k,i))
        {
            v[p]=i;
            bkt(p+1,s*pr[i]);
        }
    }
}

int main()
{
    f>>n>>k;
    for(i=1; i<=n; ++i)
        f>>pr[i];
    S=0;
    nr=0;
    bkt(1,1);
    S=S/nr;
    fout<<S;
}