Cod sursa(job #1350380)

Utilizator horiainfoTurcuman Horia horiainfo Data 20 februarie 2015 19:36:40
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k;
double p=1,s,v[30];
void bkt(int poz,int nr)
{
    double aux=p;
    if(nr>k)
        s=s+p;
    else
        for(int i=poz;i<=n-(k-nr)+1;i++)
        {
            p=p*v[i];
            bkt(i+1,nr+1);
            p=aux;
        }
}
long long comb(int n,int k)
{
    long long fN=1,f=1;
    for(int i=k+1;i<=n;i++)
        fN=fN*i;
    for(int i=k+1;i<=n-k;i++)
        f=f*i;
    return fN/f;
}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    bkt(1,1);
    s=s/comb(n,k);
    fout.precision(6);
    fout<<fixed<<s<<'\n';
    return 0;
}