diff options
-rw-r--r-- | 17.py | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -1,6 +1,7 @@ from math import sqrt, ceil, floor from utils import parse_day from collections import defaultdict +from itertools import chain tx_min, tx_max, ty_min, ty_max = \ map(int, parse_day(17, r'.* x=(-?\d+)..(-?\d+), y=(-?\d+)..(-?\d+)')) @@ -39,11 +40,10 @@ for vy0 in range(vy_min, vy_max + 1): tmin, tmax = y_times(vy0) for t in range(tmin, tmax + 1): times[t].add(vy0) -points = set() +count = 0 for vx0 in range(vx_min, vx_max + 1): tmin, tmax = x_times(vx0) - for t, vy0set in times.items(): - if tmin <= t <= tmax: - for vy0 in vy0set: - points.add((vx0, vy0)) -print(len(points)) + count += len(set(chain.from_iterable( + vy0set for t, vy0set in times.items() if tmin <= t <= tmax + ))) +print(count) |