Cod sursa(job #2509985)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 15 decembrie 2019 15:00:32
Problema Dezastru Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

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

int fact(int n) 
{ 
    int ans = 1; 
    for (int i = 1; i <= n; i++) {
        ans *= i; 
    }
    return ans; 
} 

int comb(int n, int k) 
{ 
    return fact(n) / (fact(k) * fact(n - k)); 
} 
   
 
    
int main(){
    int n, k;
    fin >> n;
    fin >> k;
    
    vector<double>arr(n+1);
    for(int i = 1; i <= n; i++){
        fin >> arr[i];
    }
    
    vector<vector<double>>dp(n+1, vector<double>(n+1, 0));
    for(int i = 0; i <= n; i++) dp[i][0] = 1;
    
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= k; j++){
    
            dp[i][j] = dp[i-1][j-1] * arr[i] + dp[i-1][j];
        }
    }
    
    fout << fixed << setprecision(6) << dp[n][k] / comb(n,k);
    
    fin.close();
    fout.close();
    return 0;
    
}