123456789101112131415161718192021222324252627282930 |
- import re
- from collections import defaultdict
-
- with open('data/03.txt', 'r') as file:
- cells = defaultdict(lambda: 0)
- claims = map(lambda l: map(int, re.findall(r'\d+', l)), file.readlines())
- ids = set()
- overlaps = 0
-
- for (cid, x, y, width, height) in claims:
- collision = False
- for i in range(width):
- for j in range(height):
- previous = cells[(x + i, y + j)]
- if previous == 0:
- cells[(x + i, y + j)] = cid
- elif previous == -1:
- collision = True
- else:
- collision = True
- overlaps += 1
- if previous in ids:
- ids.remove(previous)
- cells[(x + i, y + j)] = -1
-
- if not collision:
- ids.add(cid)
-
- print(overlaps)
- print(list(ids)[0])
|