P1298求调
查看原帖
P1298求调
482610
Mortidesperatslav楼主2023/11/4 10:07
#include<bits/stdc++.h>
using namespace std;
int n,m;
double p,mn=1145141919;
int an=0,am=0;
int fl=0;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n>>m;
    cin>>p;
    for(int i=1;i<=n;i++){
		int l=1,r=m;
		while(l<=r){
			int mid=(l+r)>>1;
			double fz=i*1.000,fm=mid*1.000;
			double val=fz*1.000/fm;
			if(an==0&&am==0)an=i,am=mid;
			else if(fabs(fabs(val-p)-mn)<=1e-9)fl=1;
			if(fabs(val-p)+1e-18<fabs(mn-p))an=fz,am=fm,fl=0,mn=fz/fm;
			if(val>p)l=mid+1;
			else r=mid-1;
		}
	}
	int gg=__gcd(an,am);
	if(fl==0)cout<<an/gg<<"/"<<am/gg;
	else cout<<"TOO MANY";
}
2023/11/4 10:07
加载中...