import pickle, random, collections
exec(open("/root/fwa1/v3frag.py").read().split("random.seed(7)")[0])
R = book(300, 2.5e5, 1e6)
F = pickle.load(open("/root/fwa1/v3/qfeat.pkl", "rb")); single, pairs = pickle.load(open("/root/fwa1/v3/qpick.pkl", "rb"))
def ok(r, rule): return all((F[r[0]["pool"]][k] >= c) if op == ">=" else (F[r[0]["pool"]][k] < c) for k, op, c in rule)
random.seed(7)
for name, ru in (("base", ()), ("pick pair", pairs[0][1]), ("best single", single[0][1])):
    for h in (2, 0):
        S = [r for r in R if ok(r, ru) and (h == 0 or r[0]["t"] >= CUT)]
        dd = sorted({day(r[0]["t"]) for r in R if h == 0 or r[0]["t"] >= CUT})
        byd = collections.defaultdict(lambda: [0.0, 0])
        for p, v, w, t in S: byd[day(p["t"])][0] += v - 1; byd[day(p["t"])][1] += 1
        res = []
        for _ in range(1000):
            smp = [random.choice(dd) for _ in dd]; c = sum(byd[d][1] for d in smp)
            res.append(1 + sum(byd[d][0] for d in smp) / c if c else 1)
        res.sort()
        print("%-12s %s n%d under 1.0x %.1f%% 5th pct %.2fx median %.2fx" % (name, "H2" if h else "all", len(S), sum(x < 1 for x in res) / 10, res[50], res[500]))
