cleanup
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
import sys
|
||||
import re
|
||||
from collections import defaultdict, Counter, deque
|
||||
#import pyperclip as pc
|
||||
def pr(s):
|
||||
print(s)
|
||||
# pc.copy(s)
|
||||
|
||||
sys.setrecursionlimit(10**6)
|
||||
infile = sys.argv[1] if len(sys.argv)>=2 else '/home/bandeira/git.bandeira/aoc/2024/day08/input.day08'
|
||||
p1 = 0
|
||||
p2 = 0
|
||||
D = open(infile).read().strip()
|
||||
G = D.split('\n')
|
||||
R = len(G)
|
||||
C = len(G[0])
|
||||
P = defaultdict(list)
|
||||
for r in range(R):
|
||||
for c in range(C):
|
||||
if G[r][c] != '.':
|
||||
P[G[r][c]].append((r,c))
|
||||
|
||||
A1 = set()
|
||||
A2 = set()
|
||||
for r in range(R):
|
||||
for c in range(C):
|
||||
for k,vs in P.items():
|
||||
for (r1,c1) in vs:
|
||||
for (r2,c2) in vs:
|
||||
if (r1,c1) != (r2,c2):
|
||||
d1 = abs(r-r1)+abs(c-c1)
|
||||
d2 = abs(r-r2)+abs(c-c2)
|
||||
|
||||
dr1 = r-r1
|
||||
dr2 = r-r2
|
||||
dc1 = c-c1
|
||||
dc2 = c-c2
|
||||
# To check if (r,c) (r1,c1) (r2,c2) are all on a line, check if (r,c)-(r1,c1) has the same slope as (r,c)-(r2,c2)
|
||||
# dr1/dc1 == dr2/dc2
|
||||
|
||||
if (d1==2*d2 or d1*2==d2) and (dr1*dc2 == dc1*dr2):
|
||||
A1.add((r,c))
|
||||
if (dr1*dc2 == dc1*dr2):
|
||||
#print(f'{r4=} {c=} {r1=} {c1=} {r2=} {c2=} {k=} {dr1=} {dr2=} {dc1=} {dc2=}')
|
||||
A2.add((r,c))
|
||||
|
||||
|
||||
p1 = len(A1)
|
||||
p2 = len(A2)
|
||||
pr(p1)
|
||||
pr(p2)
|
||||
Reference in New Issue
Block a user