heh
hmm
| -rw-r--r-- | src/main.rs | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/src/main.rs b/src/main.rs index 5fd542c..cdcc753 100644 --- a/src/main.rs +++ b/src/main.rs @@ -62,22 +62,27 @@ pub fn run(i: &str) -> impl Display { #[inline] fn dmod(a: i64, b: i64) -> (i64, i64) { - (a / b, a % b) + unsafe { + ( + core::intrinsics::unchecked_div(a, b), + core::intrinsics::unchecked_rem(a, b), + ) + } } // a_x * α + b_x * β = p_x // a_y * α + b_y * β = p_y - let (α, ok) = dmod( - b_y * p_x - b_x * p_y, // - a_x * b_y - a_y * b_x, + let (β, ok) = dmod( + a_y * p_x - a_x * p_y, // + a_y * b_x - a_x * b_y, ); if ok == 0 { - let (β, ok) = dmod( - a_y * p_x - a_x * p_y, // - a_y * b_x - a_x * b_y, - ); - if ok == 0 { - sum += 3 * α + β; - } + let α = unsafe { + core::intrinsics::unchecked_div( + b_y * p_x - b_x * p_y, // + a_x * b_y - a_y * b_x, + ) + }; + sum += 3 * α + β; } if i.is_empty() { |