func_code_string: #include <bits/stdc++.h>   using namespace std;   int64_t mod = 1e9 + 7, inf = 4e18;   map<vector<int64_t>, long double> seen;   long double rec(vector<int64_t> &people, int64_t n, int64_t len) {     if (len < 0) return -1;     if (n == 0) return 0;     if (seen[people]) return seen[people];     long double ans = 0;     for (int64_t i = 0; i < people.size(); i++) {       if (people[i] == 0) continue;       people[i] -= 1;       ans += (1 + rec(people, n - 1, len - i)) * (people[i] + 1) / n;       people[i] += 1;     }     seen[people] = ans;     return ans;   }   int32_t main() {     ios::sync_with_stdio(false), cin.tie(nullptr);     cout << fixed << setprecision(5);     int64_t n, p;     cin >> n;     vector<int64_t> hist(51, 0);     int64_t tmp;     for (int64_t i = 0; i < int64_t(n); ++i) cin >> tmp, hist[tmp]++;     cin >> p;     cout << rec(hist, n, p);     return 0;   }   