2024 Dec 13th
This commit is contained in:
parent
b8754c8a47
commit
dd5e59433c
1 changed files with 25 additions and 0 deletions
25
Python/2024/13/main.py
Normal file
25
Python/2024/13/main.py
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
import re
|
||||||
|
input = open("input", 'r').read().strip()
|
||||||
|
|
||||||
|
A = re.findall(r"Button A: X\+(\d*), Y\+(\d*)", input)
|
||||||
|
B = re.findall(r"Button B: X\+(\d*), Y\+(\d*)", input)
|
||||||
|
T = re.findall(r"Prize: X=(\d*), Y=(\d*)", input)
|
||||||
|
|
||||||
|
AC = 3
|
||||||
|
BC = 1
|
||||||
|
def run(p2=0, LIM=100):
|
||||||
|
p = []
|
||||||
|
for a,b,t in zip(A,B,T):
|
||||||
|
xa, ya = int(a[0]), int(a[1])
|
||||||
|
xb, yb = int(b[0]), int(b[1])
|
||||||
|
xt, yt = int(t[0])+p2, int(t[1])+p2
|
||||||
|
alpha = (xt*yb-yt*xb) / (xa*yb-ya*xb)
|
||||||
|
beta = (yt*xa-xt*ya) / (xa*yb-ya*xb)
|
||||||
|
if alpha == int(alpha) and beta == int(beta):
|
||||||
|
if LIM and (alpha > LIM or beta > LIM): continue
|
||||||
|
p.append(int(alpha*AC + beta*BC))
|
||||||
|
return p
|
||||||
|
|
||||||
|
print(sum(run()))
|
||||||
|
M = 10000000000000
|
||||||
|
print(sum(run(M, None)))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue