g | x | w | all
Bytes Lang Time Link
8812Python 3250409T190142ZCursorCo

Python 3, SCORE: 8812

from itertools import *
from functools import *

def power_set(lis):
    lis = sorted(lis)
    return list(chain.from_iterable(combinations(lis, r) for r in range(len(lis)+1)))

def get_families(lis, closed=False):
    ret_val = []
    for family in power_set(power_set(lis)):
        if not family or not any(family):
            continue
        if closed:
            for p1, p2 in combinations(family, 2):
                if tuple(sorted(set(p1+p2))) not in family:
                    break
            else:
                ret_val.append(family)
        else:
            ret_val.append(family)
    return ret_val

x_k = [3,10,45,92]
idk = lambda i: x_k[i]
op1 = lambda x,y: x+y
op2 = lambda x,y: x*y
df1 = 0
df2 = 1

final_score = 0
for f in range(4):
    total = 0
    families = get_families(range(f+1), False)
    for family in families:
        for k in range(f+1):
            lhs = df1
            rhs = df1
            for A in family:
                if k in A:
                    lhs = op1(lhs, reduce(op2, map(idk, A), df2))
                else:
                    rhs = op1(rhs, reduce(op2, map(idk, A), x_k[k]))
            if lhs >= rhs:
                total += 1
                break
    # print(total, "/", len(families))
    print(f"c{f+1}: {total}")
    final_score += len(families) - total
print(f"SCORE: {final_score}")

Try it online!

Operation 1 is sum, operation 2 is product, \$x_k=[3,10,45,92]\$. This results in counts of 2, 12, 213, 56765.