-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_079.py
More file actions
38 lines (27 loc) · 727 Bytes
/
_079.py
File metadata and controls
38 lines (27 loc) · 727 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from utils import digits
f = open("./inputs/_079", "r")
codes = list(map(lambda n: digits(int(n)), f.read().split("\n")))
dependencies = {}
occurs = set()
for i in range(10): dependencies[i] = set()
for code in codes:
for i in range(3):
occurs.add(code[i])
for j in range(i + 1, 3):
dependencies[code[i]].add(code[j])
possible = set()
def traverse(i, n):
if len(dependencies[i]) == 0:
global possible
possible.add(n)
else:
for j in dependencies[i]:
traverse(j, n * 10 + j)
for i in range(10):
traverse(i, i)
possible = list(possible)
possible.sort()
for p in possible:
pi = digits(p)
if len(pi) == len(occurs):
print(p)