QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#767570#9622. 有限小数HeenpeiWA 83ms3612kbC++172.0kb2024-11-20 21:17:192024-11-20 21:17:25

Judging History

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

  • [2024-11-20 21:17:25]
  • 评测
  • 测评结果:WA
  • 用时:83ms
  • 内存:3612kb
  • [2024-11-20 21:17:19]
  • 提交

answer

#include<bits/stdc++.h>
#include<map>
#include<queue>
#include<set>
#include<vector>
#define int long long
#define ull unsigned long long
#define endl '\n'
#define all(s) s.begin(),s.end()
#define xx first
#define yy second
#define inf 0x3f3f3f3f3f3f3f3f
#define N 1000005
#define mod 1000000007//998244353
#define double long double
#define lowbit(x) ((x)&(-x))
//#define ll long long
#define ls(x) (x<<1)
#define rs(x) ((x<<1)|1)
#define pll pair<int,int> 
#define __lcm(a,b) (a/__gcd(a,b)*b)
const double pi=acos(-1);
const int P=233333;
const int PP=1313131;
const int mod1=1000001011;
const int mod2=(1ll<<31)-1;
using namespace std;
int qmi(int b,int k)
{
	int ans=1;
	while(k)
	{
		if(k&1) ans*=b;
		b*=b,k>>=1;
	}
	return ans;
}
vector<int> v;
void init(int n)
{
	//int cnt=0;
	for(int i=0;i<=31;i++)
	{
		for(int j=0;j<=n&&qmi(2,i)*qmi(5,j)<=n;j++)
		{
			int x=qmi(2,i)*qmi(5,j);
			v.push_back(x);
			//cout<<++cnt<<" "<<qmi(2,i)*qmi(5,j)<<endl;
		}
	}
	sort(all(v));
} 
bool check(int x)
{
	while(x%2==0) x/=2;
	while(x%5==0) x/=5;
	return x==1;
}
bool query(int a,int b,int c,int d)
{
	int n=b*d;
	a*=d,c*=b;
	int m=a+c;
	int g=__gcd(n,m);
	n/=g,m/=g;
	if(check(n)) cout<<m<<" "<<n<<endl;
	return check(n);
}
int arr[N];
void solve()
{
	int a,b;cin>>a>>b;
	/*for(int i=1;i<=10000000;i++)
	{
		if(query(a,b,1,i))
		{
			cout<<i<<endl;
			return ;
		}
	}*/
	int ans=b-a,id=b;
	for(auto i:v)
	{
		int g=__gcd(b,i);
		double x=a*i/g;
		int k=ceil(x/b*g)*b/g;
		if(k-x<ans&&i*b/g<=1e9)
		{
			ans=k-x;
			id=i*b/g;
		}
	}
	cout<<ans<<" "<<id<<endl;
}
void gettest(int t,int T)
{
	
}
signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int T=1;
	cin>>T;
	init(1000000000);
    if(T==-1)
    {
    	gettest(209,T);
    	return 0;
	}
	while(T--)
    {
    	solve();
    	//cout<<"&\n";
	}
    return 0;
}
/*
4
1 2
2 3
3 7
19 79

4
28 53
17 60
2 35
17 181






*/

详细

Test #1:

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

input:

4
1 2
2 3
3 7
19 79

output:

0 2
1 3
1 14
3 316

result:

ok 4 case(s)

Test #2:

score: -100
Wrong Answer
time: 83ms
memory: 3564kb

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 12
1 54272
1 60
1 350
1 231680000
23 3936
1 36096000
5 326
1 63360
0 64
1 31232
0 32
1 4880
1 10750
1 18500
1 11714560
1 331250
1 2944
1 31
1 6
1 289600000
1 455000
1 58880
1 51840
0 2
1 304
0 160
1 415
1 19328000
1 765000000
1 4640
1 608
1 72192
3 24800
1 480
3 347500
1 944
1 43600
1 1520
1 43000...

result:

wrong answer Jury found better answer than participant's 1 < 2 (Testcase 321)