16 lines
586 B
Python
16 lines
586 B
Python
#!/usr/bin/env python3
|
|
from collections import defaultdict
|
|
|
|
lines = (x.strip() for x in open("input.txt"))
|
|
result = 0
|
|
tickets = defaultdict(int, {i: 1 for i in range(0)})
|
|
|
|
for idx, line in enumerate(lines):
|
|
tickets[idx] += 1
|
|
winnings = set(int(x.strip()) for x in line[line.find(":")+1:line.find("|")].split(" ") if len(x))
|
|
you_have = set(int(x.strip()) for x in line[line.find("|")+1:].split(" ") if len(x))
|
|
num_overlap = len(you_have.intersection(winnings))
|
|
for i in range(idx+1, idx+1+num_overlap):
|
|
tickets[i] += tickets[idx]
|
|
|
|
print(sum(tickets.values())) |