This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ll long long
#define sz(x) (int) x.size()
#define all(x) x.begin(), x.end()
#define FAST ios::sync_with_stdio(0); cin.tie(0);
#define getunique(v) {sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());}
#define random mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); mt19937 rnd(time(0));
const int INF = 1e9;
const int MX = 2e5 + 9;
const int MOD = 1e9 + 7;
//const int MOD = 998244353;
void solve() {
function<ll(ll, ll)> R = [&](ll a, ll b) {
if (a < b) {
return R(b, a);
}
else if (b == 1) {
return a;
}
else {
return R(a / b, b);
}
};
ll g, h;
cin >> g >> h;
ll x = 1, y = h;
while (x < g) {
x = x * y;
}
swap(x, y);
x = (x * y + g - 1) / g * g;
swap(x, y);
x = x * y + g;
assert (R(x, y) == h);
assert (abs(__gcd(x, y)) == g);
cout << x << " " << y << endl;
}
int main() {
FAST;
int t = 1;
cin >> t;
while (t--) {
solve();
}
}
/*
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |