#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#pragma GCC optimize("Ofast")
#define N 1005
#define NN 1005000
#define PB push_back
#define M ll(1e9 + 7)
#define all(x) x.begin(), x.end()
#define sz(x) int(x.size())
#define pri(x) cout << x << endl
#define endl '\n'
#define _ << " " <<
#define F first
#define S second
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less <int>, rb_tree_tag, tree_order_statistics_node_update> oredered_set;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
typedef short int si;
ll brd(ll a, ll b)
{
if (b > a)
swap(a, b);
if (b == 1)
return a;
return brd(a / b, b);
}
pair <ll, ll> pt[2100][2100];
pair <ll, ll> fnd(ll gc, ll x)
{
ll p = (x + x) / gc;
ll r = p * gc;
if (r == x + x)
r -= gc;
p = x / gc;
ll l = p * gc;
if (l != x)
l += gc;
for (ll y = l; y <= r; y += gc)
{
if (__gcd(y, x) == gc) return {y, x};
for (ll t = x * y; t < (x + 1) * y; t++)
if (__gcd(y, t) == gc)
return {y, t};
}
for (ll y = x; y < x + x; y++)
{
if (y % gc == 0) continue;
r = (y * (x + 1));
r /= gc;
r *= gc;
if (r == (y * (x + 1)))
r -= gc;
l = (y * x) / gc;
l *= gc;
if (l != y * x)
l += gc;
for (ll nx = l; nx <= r; nx += gc)
{
for (ll t = nx * y; t < nx * (y + 1); t++)
if (__gcd(t, nx) == gc)
return {nx, t};
}
}
return {0, 0};
}
int main()
{
ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);
//freopen("1.in", "r", stdin);
for (int i = 1; i <= 200; i++)
for (int j = 2; j <= 200; j++)
{
pt[i][j] = fnd(i, j);
}
for (int i = 2; i <= 1000; i++)
for (int j = 2; j <= 1000; j++)
{
int gc = __gcd(i, j);
int bd = brd(i, j);
if (gc > 2000 || bd > 2000) continue;
if (pt[gc][bd].F != 0) continue;
pt[gc][bd] = {i, j};
}
int q;
cin >> q;
for (; q > 0; q--)
{
ll gc, bd;
cin >> gc >> bd;
if (gc == bd)
{
pri(gc _ bd);
continue;
}
if (bd == 2)
{
pri(gc + gc _ gc);
continue;
}
if (gc == bd && bd == 1)
{
pri(3 _ 2);
continue;
}
if (bd * bd == gc)
{
pri(gc _ bd * gc);
continue;
}
if (pt[gc][bd].F != 0)
pri(pt[gc][bd].F _ pt[gc][bd].S);
else
{
pair <ll, ll> pt = fnd(gc, bd);
// if (pt.F == 0)
// assert(0);
pri(pt.F _ pt.S);
}
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
154 ms |
8940 KB |
Output is correct |
2 |
Correct |
155 ms |
8940 KB |
Output is correct |
3 |
Correct |
154 ms |
9068 KB |
Output is correct |
4 |
Correct |
155 ms |
9068 KB |
Output is correct |
5 |
Correct |
156 ms |
8940 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
154 ms |
8940 KB |
Output is correct |
2 |
Correct |
153 ms |
8940 KB |
Output is correct |
3 |
Correct |
154 ms |
8940 KB |
Output is correct |
4 |
Correct |
155 ms |
9108 KB |
Output is correct |
5 |
Correct |
153 ms |
8940 KB |
Output is correct |
6 |
Correct |
153 ms |
8940 KB |
Output is correct |
7 |
Correct |
154 ms |
8940 KB |
Output is correct |
8 |
Correct |
155 ms |
8940 KB |
Output is correct |
9 |
Correct |
153 ms |
9068 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
153 ms |
8940 KB |
Output is correct |
2 |
Correct |
153 ms |
8940 KB |
Output is correct |
3 |
Correct |
153 ms |
8940 KB |
Output is correct |
4 |
Correct |
154 ms |
9084 KB |
Output is correct |
5 |
Correct |
154 ms |
8964 KB |
Output is correct |
6 |
Correct |
155 ms |
8940 KB |
Output is correct |
7 |
Correct |
153 ms |
8940 KB |
Output is correct |
8 |
Correct |
153 ms |
8940 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
159 ms |
8940 KB |
Output is correct |
2 |
Correct |
154 ms |
8952 KB |
Output is correct |
3 |
Correct |
154 ms |
8940 KB |
Output is correct |
4 |
Correct |
153 ms |
8960 KB |
Output is correct |
5 |
Correct |
154 ms |
9068 KB |
Output is correct |
6 |
Correct |
153 ms |
8900 KB |
Output is correct |
7 |
Correct |
154 ms |
9068 KB |
Output is correct |
8 |
Correct |
152 ms |
8940 KB |
Output is correct |
9 |
Correct |
153 ms |
9068 KB |
Output is correct |
10 |
Correct |
158 ms |
8940 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
159 ms |
8940 KB |
Output is correct |
2 |
Correct |
154 ms |
8952 KB |
Output is correct |
3 |
Correct |
154 ms |
8940 KB |
Output is correct |
4 |
Correct |
153 ms |
8960 KB |
Output is correct |
5 |
Correct |
154 ms |
9068 KB |
Output is correct |
6 |
Correct |
153 ms |
8900 KB |
Output is correct |
7 |
Correct |
154 ms |
9068 KB |
Output is correct |
8 |
Correct |
152 ms |
8940 KB |
Output is correct |
9 |
Correct |
153 ms |
9068 KB |
Output is correct |
10 |
Correct |
158 ms |
8940 KB |
Output is correct |
11 |
Incorrect |
153 ms |
9068 KB |
Integer parameter [name=a] equals to 0, violates the range [1, 10^18] |
12 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
154 ms |
8940 KB |
Output is correct |
2 |
Correct |
155 ms |
8940 KB |
Output is correct |
3 |
Correct |
154 ms |
9068 KB |
Output is correct |
4 |
Correct |
155 ms |
9068 KB |
Output is correct |
5 |
Correct |
156 ms |
8940 KB |
Output is correct |
6 |
Correct |
154 ms |
8940 KB |
Output is correct |
7 |
Correct |
153 ms |
8940 KB |
Output is correct |
8 |
Correct |
154 ms |
8940 KB |
Output is correct |
9 |
Correct |
155 ms |
9108 KB |
Output is correct |
10 |
Correct |
153 ms |
8940 KB |
Output is correct |
11 |
Correct |
153 ms |
8940 KB |
Output is correct |
12 |
Correct |
154 ms |
8940 KB |
Output is correct |
13 |
Correct |
155 ms |
8940 KB |
Output is correct |
14 |
Correct |
153 ms |
9068 KB |
Output is correct |
15 |
Correct |
153 ms |
8940 KB |
Output is correct |
16 |
Correct |
153 ms |
8940 KB |
Output is correct |
17 |
Correct |
153 ms |
8940 KB |
Output is correct |
18 |
Correct |
154 ms |
9084 KB |
Output is correct |
19 |
Correct |
154 ms |
8964 KB |
Output is correct |
20 |
Correct |
155 ms |
8940 KB |
Output is correct |
21 |
Correct |
153 ms |
8940 KB |
Output is correct |
22 |
Correct |
153 ms |
8940 KB |
Output is correct |
23 |
Correct |
159 ms |
8940 KB |
Output is correct |
24 |
Correct |
154 ms |
8952 KB |
Output is correct |
25 |
Correct |
154 ms |
8940 KB |
Output is correct |
26 |
Correct |
153 ms |
8960 KB |
Output is correct |
27 |
Correct |
154 ms |
9068 KB |
Output is correct |
28 |
Correct |
153 ms |
8900 KB |
Output is correct |
29 |
Correct |
154 ms |
9068 KB |
Output is correct |
30 |
Correct |
152 ms |
8940 KB |
Output is correct |
31 |
Correct |
153 ms |
9068 KB |
Output is correct |
32 |
Correct |
158 ms |
8940 KB |
Output is correct |
33 |
Incorrect |
153 ms |
9068 KB |
Integer parameter [name=a] equals to 0, violates the range [1, 10^18] |
34 |
Halted |
0 ms |
0 KB |
- |