Cod sursa(job #1906361)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 6 martie 2017 13:38:04
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;
int i,j,n,k;
double v[27],a[27][27],nr;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
/*int cont (int pas){
    for (int i=1;i<pas;i++)
        if (x[i] == x[pas])
            return 0;
    return 1;
}
void back (int pas){
    if (pas > n){
        for (i=1;i<=k;i++)
            sum += v[x[i]]/nr;
    }
    for (int i=1;i<=pas;i++){
        x[pas] = i;
        if (cont(pas))
            back (pas+1);
    }

}*/
int main (){

    fin>>n>>k;
    for (i=1;i<=n;i++)
        fin>>v[i];
    // generam submultimi cu backtracking
    //back (1);

    for (i=0;i<=n;i++)
        a[i][0] = 1;
    for (i=1;i<=n;i++)
        for (j=1;j<=k;j++)
            a[i][j] = a[i-1][j] + a[i-1][j-1] * v[i];
    // calculam combinari de n luate cate k;
    nr = 1;
    for (i=k+1;i<=n;i++)
        nr *= i;
    for (i=1;i<=n-k;i++)
        nr /= i;
    fout<<a[n][k]/nr;

    return 0;
}