From ca5de48d6431cd1321b60718b900712918176911 Mon Sep 17 00:00:00 2001 From: mzuenni Date: Fri, 30 Aug 2024 15:35:58 +0200 Subject: shortened code --- content/other/recover.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/content/other/recover.cpp b/content/other/recover.cpp index 0d3c3ea..1a593f0 100644 --- a/content/other/recover.cpp +++ b/content/other/recover.cpp @@ -1,12 +1,13 @@ ll sq(ll x) {return x*x;} -pair recover(ll c, ll m) { - array u = {1, 0, m}, v = {0, 1, c}; - while (m <= 2 * sq(v[2])) { - ll q = u[2] / v[2]; - for (int i : {0, 1, 2}) u[i] -= q * v[i]; +array recover(ll c, ll m) { + array u = {m, 0}, v = {c, 1}; + while (m <= 2 * sq(v[0])) { + ll q = u[0] / v[0]; + u[0] -= q * v[0]; + u[1] -= q * v[1]; swap(u, v); } - if (v[1] < 0 || 2 * sq(v[1]) >= m) return {-1, -1}; - return {v[2], v[1]}; + if (v[1] <= 0 || 2 * sq(v[1]) >= m) return {-1, -1}; + return v; } -- cgit v1.2.3