|
@@ -76,17 +76,22 @@ func calculate(machine Machine, button int) [2]int {
|
|
|
start = 100
|
|
|
}
|
|
|
|
|
|
- for start > 0 {
|
|
|
- if (machine.x-start*machine.buttons[button].x)%machine.buttons[otherButton].x == 0 && (machine.y-start*machine.buttons[button].y)%machine.buttons[otherButton].y == 0 {
|
|
|
- otherPushes := (machine.x - start*machine.buttons[button].x) / machine.buttons[otherButton].x
|
|
|
- if otherPushes <= 100 {
|
|
|
- results[button] = start
|
|
|
- results[otherButton] = otherPushes
|
|
|
- return results
|
|
|
+ for ; start > 0; start-- {
|
|
|
+ deltaX := machine.x - start*machine.buttons[button].x
|
|
|
+ if deltaX%machine.buttons[otherButton].x == 0 {
|
|
|
+ otherPushes := deltaX / machine.buttons[otherButton].x
|
|
|
+ if otherPushes > 100 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ if machine.y-start*machine.buttons[button].y != otherPushes*machine.buttons[otherButton].y {
|
|
|
+ continue
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- start--
|
|
|
+ results[button] = start
|
|
|
+ results[otherButton] = otherPushes
|
|
|
+ return results
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return results
|