41 lines
858 B
Python
41 lines
858 B
Python
input = open("input", 'r')
|
|
|
|
data = []
|
|
|
|
for line in input:
|
|
card = line.rstrip().split(": ")[1]
|
|
winning, present = card.split(" | ")
|
|
winning = [int(num) for num in winning.split(" ") if num != ""]
|
|
present = [int(num) for num in present.split(" ") if num != ""]
|
|
data.append({
|
|
"wins": winning,
|
|
"pres": present
|
|
})
|
|
|
|
total = 0
|
|
wins = {card_num: 0 for card_num in range(len(data))}
|
|
|
|
for i, card in enumerate(data):
|
|
for number in card["pres"]:
|
|
if number in card["wins"]:
|
|
wins[i] += 1
|
|
if wins[i]:
|
|
total += 2 ** (wins[i]-1)
|
|
|
|
print(total)
|
|
|
|
cards = {card_num: 1 for card_num in range(len(data))}
|
|
|
|
print(wins)
|
|
|
|
for num, count in wins.items():
|
|
for i in range(count):
|
|
cards[num+i+1] += cards[num]
|
|
|
|
print(cards)
|
|
|
|
total = 0
|
|
for _, count in cards.items():
|
|
total += count
|
|
|
|
print(total)
|