diff options
Diffstat (limited to '8.py')
-rw-r--r-- | 8.py | 29 |
1 files changed, 11 insertions, 18 deletions
@@ -1,30 +1,23 @@ from collections import Counter from itertools import chain from utils import open_day -from enum import IntEnum, auto +from enum import IntEnum fset = frozenset -class Seg(IntEnum): - A = 0 - B = auto() - C = auto() - D = auto() - E = auto() - F = auto() - G = auto() +Seg = IntEnum('Seg', [(n, str(i)) for i, n in enumerate('ABCDEFG')]) dig = [ - fset((Seg.A, Seg.B, Seg.C, Seg.E, Seg.F, Seg.G)), - fset((Seg.C, Seg.F)), - fset((Seg.A, Seg.C, Seg.D, Seg.E, Seg.G)), - fset((Seg.A, Seg.C, Seg.D, Seg.F, Seg.G)), - fset((Seg.B, Seg.C, Seg.D, Seg.F)), - fset((Seg.A, Seg.B, Seg.D, Seg.F, Seg.G)), - fset((Seg.A, Seg.B, Seg.D, Seg.E, Seg.F, Seg.G)), - fset((Seg.A, Seg.C, Seg.F)), + fset((Seg.A, Seg.B, Seg.C, Seg.E, Seg.F, Seg.G)), + fset(( Seg.C, Seg.F )), + fset((Seg.A, Seg.C, Seg.D, Seg.E, Seg.G)), + fset((Seg.A, Seg.C, Seg.D, Seg.F, Seg.G)), + fset(( Seg.B, Seg.C, Seg.D, Seg.F )), + fset((Seg.A, Seg.B, Seg.D, Seg.F, Seg.G)), + fset((Seg.A, Seg.B, Seg.D, Seg.E, Seg.F, Seg.G)), + fset((Seg.A, Seg.C, Seg.F )), fset((Seg.A, Seg.B, Seg.C, Seg.D, Seg.E, Seg.F, Seg.G)), - fset((Seg.A, Seg.B, Seg.C, Seg.D, Seg.F, Seg.G)), + fset((Seg.A, Seg.B, Seg.C, Seg.D, Seg.F, Seg.G)), ] seg = [ fset(i for i in range(10) if seg in dig[i]) for seg in Seg ] |