func_code_string: #include <bits/stdc++.h>   using namespace std;   double p[22], f[(1 << 20) + 10], ans[22];   int n, m;   int main() {     int cnt = 0;     scanf( %d%d , &n, &m);     for (int i = 1; i <= n; i++) {       scanf( %lf , &p[i]);       if (p[i] > 1e-7) cnt++;     }     if (cnt <= m) {       for (int i = 1; i <= n; i++)         if (p[i] > 1e-7)           printf( 1  );         else           printf( 0  );       return 0;     }     int ss = (1 << n) - 1;     f[0] = 1;     for (int i = 0; i <= ss; i++) {       cnt = 0;       for (int j = 1; j <= n; j++)         if (i & (1 << (j - 1))) cnt++;       if (cnt > m) continue;       if (cnt == m) {         for (int j = 1; j <= n; j++)           if (i & (1 << (j - 1))) ans[j] += f[i];         continue;       }       double t = 1;       for (int j = 1; j <= n; j++)         if (i & (1 << (j - 1))) t -= p[j];       for (int j = 1; j <= n; j++) {         if (i & (1 << (j - 1))) continue;         f[i + (1 << (j - 1))] += f[i] * p[j] / t;       }     }     for (int i = 1; i <= n; i++) printf( %.7lf  , ans[i]);     return 0;   }   