Files
aoc2023/04/04.py
T
Fedor Lyanguzov 8369cddcd8 update
2025-10-18 13:38:38 +03:00

23 lines
699 B
Python

inp = open('input.txt').read().strip().split('\n')
##inp = '''
##Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53
##Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19
##Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1
##Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83
##Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36
##Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11
##'''.strip().split('\n')
inp = list(map(lambda x: x.replace(' ', ' '), inp))
cards = [x.split(': ')[1].split(' | ') for x in inp]
cards = [(need.split(' '), have.split(' ')) for need, have in cards]
s = 0
for need, have in cards:
if len(set(have)&set(need))>0:
s += 2**(len(set(need) & set(have)) - 1)
print(s)