summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--8.py29
1 files changed, 11 insertions, 18 deletions
diff --git a/8.py b/8.py
index 609d09f..1a55334 100644
--- a/8.py
+++ b/8.py
@@ -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 ]