QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#743369#9622. 有限小数ty09WA 118ms3608kbC++171.2kb2024-11-13 19:02:212024-11-13 19:02:22

Judging History

你现在查看的是最新测评结果

  • [2024-11-13 19:02:22]
  • 评测
  • 测评结果:WA
  • 用时:118ms
  • 内存:3608kb
  • [2024-11-13 19:02:21]
  • 提交

answer

#include"bits/stdc++.h"
#define endl '\n'
#define int ll
using ll=long long;
using namespace std;
constexpr int N=1e5+10,inf=0X3F3F3F3F,U=1e9;
constexpr ll INF=0X3F3F3F3F3F3F3F3F;
int ex_gcd(int a, int b, int& x, int& y) {
  if (b == 0) {
    x = 1;
    y = 0;
    return a;
  }
  int d = ex_gcd(b, a % b, x, y);
  int temp = x;
  x = y;
  y = temp - a / b * y;
  return d;
}

bool liEu(int a, int b, int c, int& x, int& y) {
  int d = ex_gcd(a, b, x, y);
  if (c % d != 0) return 0;
  int k = c / d;
  x *= k;
  y *= k;
  return 1;
}
void solve(){
    int a,b;
    cin>>a>>b;
    while(b%2==0)
        b/=2;
    while(b%5==0)
        b/=5;
    int rc=INF,rd;
    for(int i=1;i<=inf;i*=2){
        for(int j=i;j<=inf;j*=5){
            int k=j;
            int d=k*b;
            ll x,y;
            if(liEu(-1,b,a*k,x,y)==0)
                continue;
            x=(x%b+b)%b;
            int c=x;
            ll g=gcd(c,d);
            c/=g,d/=g;
            if(c<rc and d>=1 and d<=U){
                rc=c;
                rd=d;
            }
        }
    }
    cout<<rc<<' '<<rd<<endl;
}
signed main(){
    cin.tie(nullptr)->sync_with_stdio(0);
	int t;cin>>t;while(t--)
    solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3608kb

input:

4
1 2
2 3
3 7
19 79

output:

0 1
1 3
1 4375
3 316

result:

ok 4 case(s)

Test #2:

score: -100
Wrong Answer
time: 118ms
memory: 3576kb

input:

10000
11 12
28 53
17 60
2 35
17 181
80 123
68 141
79 163
71 99
13 64
33 61
15 32
16 61
11 86
33 74
128 143
40 53
7 23
30 31
5 6
86 181
73 91
13 23
71 81
1 2
7 38
117 160
33 83
129 151
88 153
25 58
16 19
19 141
95 124
43 96
71 139
11 59
106 109
93 152
34 43
17 99
1 57
20 159
16 25
5 73
159 170
172 17...

output:

1 3
1 828125000
1 3
1 21875
1 231680000
23 960937500
1 36096000
5 326
1 63360
0 1
1 61000
0 1
1 4880
1 5375
1 9250
1 11714560
1 331250
1 898437500
1 31
1 3
1 289600000
1 455000
1 115000000
1 1265625
0 1
1 14843750
0 1
1 415
1 235937500
1 765000000
1 90625
1 2968750
1 4406250
3 6200
1 15
3 347500
1 9...

result:

wrong answer The result is not terminating.(Testcase 3)