Cod sursa(job #2921484)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 31 august 2022 13:30:06
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

const int MaxN = 30;


int C[MaxN][MaxN];

int n, k;

double a[MaxN], sol[MaxN][MaxN];

void Make_Comb()
{
    for(int i = 0; i <= n; i++)
        C[i][0] = 1;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= k; j++)
            C[i][j] = C[i-1][j] + C[i-1][j-1];
}

int main()
{
    fin >> n >> k;
    for(int i = 1; i <= n; i++)
        fin >> a[i];
    for(int i = 0; i <= n; i++)
        sol[i][0] = 1;
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= k; j++)
            sol[i][j] = sol[i - 1][j] + sol[i - 1][j - 1] * a[i];
    Make_Comb();
    fout << fixed << setprecision(6) << sol[n][k] / (double) C[n][k];
    return 0;
}