Cod sursa(job #1831864)

Utilizator robertkarolRobert Szarvas robertkarol Data 18 decembrie 2016 22:10:18
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <cstdio>
using namespace std;

ifstream fin("dezastru.in");
///ofstream fout("dezastru.out");
FILE *fout=fopen("dezastru.out","w");
int i,n,k,st[26],f[26];
double v[26],p=1.0f,rez;

void back(int niv)
{
    int i;
    for(i=st[niv-1]+1;i<=n;i++)
    {
        st[niv]=i;
        p*=v[i];
        if(niv==k)
            rez+=p;
        else back(niv+1);
        p/=v[i];
    }
}
int main()
{
    fin>>n>>k;
    f[1]=1;
    for(i=2;i<=n;i++)
        f[i]=f[i-1]*i;
    for(i=1;i<=n;i++)
        fin>>v[i];
    back(1);
    ///fout<<rez/(f[n]/f[k]/f[n-k]);
    fprintf(fout,"%.6f",rez/(f[n]/f[k]/f[n-k]));
    return 0;
}