QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#770122 | #9622. 有限小数 | k1nsom# | WA | 1ms | 3540kb | C++20 | 981b | 2024-11-21 20:45:09 | 2024-11-21 20:45:09 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
void solve()
{
int a, b;
cin >> a >> b;
const int up = 1e18;
pair<int, int> ans = {up, up};
for (int i = 1; i <= up; i *= 2)
{
for (int j = 1; i * j <= up; j *= 5)
{
int d = b * i * j;
if (d > up)
break;
// c = kb - a * 2 ^ i * 5 ^ j
// k >= (a * i * j + b - 1) / b
int v = a * i * j;
int k = (v + b - 1) / b;
int tmp1 = k * b - v, tmp2 = d;
int gd = __gcd(tmp1, tmp2);
if (tmp2 / gd <= 1e9)
ans = min(ans, {tmp1 / gd, tmp2 / gd});
}
}
auto [c, d] = ans;
cout << c << ' ' << d << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T = 1;
cin >> T;
while (T--)
{
solve();
}
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3540kb
input:
4 1 2 2 3 3 7 19 79
output:
0 1 1 3 1 14 1 -126100789566373888
result:
wrong answer Integer -126100789566373888 violates the range [1, 10^9]