3
double c[7][7] = {}, v = 0, tc = 0;5
void solve(int idx, int k1, int k2, int n1, double p, vector<int> &balls) {6
if (idx == size(balls)) {13
for (int i = 0; i <= balls[idx]; ++i) {14
if (i + n1 > t) break;16
k12 = k2 + (balls[idx] - i > 0);17
solve(idx + 1, k11, k12, n1 + i, p * c[balls[idx]][i], balls);21
double getProbability(vector<int> &balls) {22
for (int i = 0; i <= 6; ++i) {23
c[i][0] = c[i][i] = 1;24
for (int j = 1; j < i; ++j) c[i][j] = c[i - 1][j] + c[i - 1][j - 1];26
for (auto &i : balls) t += i;28
solve(0, 0, 0, 0, 1, balls);