Cod sursa(job #2509986)

Utilizator IordachescuAncaFMI Iordachescu Anca Mihaela IordachescuAnca Data 15 decembrie 2019 15:03:29
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include<vector>
#include<iomanip>
using namespace std;

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

int comb(int n, int k){
    if(k > n) return 0;
    if(k == 0) return 1;
    
    return (comb(n-1, k) + comb(n-1, k-1));
} 
   
 
    
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;
    
}