QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#791958#9622. 有限小数lxllxsWA 27ms3728kbC++201.2kb2024-11-28 22:27:562024-11-28 22:27:59

Judging History

This is the latest submission verdict.

  • [2024-11-28 22:27:59]
  • Judged
  • Verdict: WA
  • Time: 27ms
  • Memory: 3728kb
  • [2024-11-28 22:27:56]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
typedef pair<int,int> pii;
typedef unsigned long long ull;
typedef long long ll;
typedef __int128 i128;
const int N=2e5+5,M=2e5+5,T=20,mod=998244353,B=131,INF=2e9,P=1000000711;

int exgcd(int a,int b,int &x,int &y){
    if(b==0){
        x=1,y=0;
        return a;
    }
    int d=exgcd(b,a%b,y,x);
    y-=a/b*x;
    return d;
}
void solve(){
    int a,b;
    cin>>a>>b;
    int t1=1,p=b;
    while(p%2==0){
        p/=2;
        t1*=2;
    }
    while(p%5==0){
        p/=5;
        t1*=5;
    }
    pii ans={-1,-1};
    for(int i=0;i<28;i++){
        int t2=1,q=i;
        while(q--)t2*=2;
        for(int j=0;j<13&&p*t2<=1e9;j++,t2*=5){
            int c,k;
            int d=exgcd(-t1,p,c,k);
            c=(a*t2/d)%mod*c%mod;
            c=(c%p+p)%p;
            if(ans.first==-1||c<ans.first)
                ans={c,t2*p};
        }
    }
    cout<<ans.first<<" "<<ans.second<<endl;
}
void fast(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
}
signed main(){
    fast();
    int t=1;
    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: 3588kb

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: 27ms
memory: 3728kb

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:

0 292968750
1 828125000
0 732421875
1 7
1 231680000
23 960937500
1 36096000
5 326
1 63360
0 1
1 61000
0 1
1 4880
1 419921875
0 74000000
1 11714560
1 331250
1 898437500
1 31
0 732421875
1 289600000
1 455000
1 115000000
1 1265625
0 1
0 380000000
0 1
1 415
1 235937500
1 765000000
0 116000000
1 2968750
...

result:

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