二分答案
查看原帖
二分答案
745930
ikun100221楼主2022/10/31 16:38
#include<bits/stdc++.h>
using namespace std;
#define  ll long long 
int main(){
    int q;
    cin>>q;
    while(q--)
    {
    	ll n,d,e;
    	cin>>n>>d>>e;
    	ll ex=n-d*e+2;
    	ll l=1,r=ex/2;
    	bool flag = 0;
    	while(l<=r)
    	{
    		ll mid =(r+l)/2;
    		ll jmid=ex-mid;
    		if(mid*jmid<n) l = mid+1;
    		else if(mid*jmid>n) r=mid-1;
    		else
    		{
    			flag=1;
    			cout<<mid<<" "<<jmid<<endl;
    			break;
    		}
		
		}
		if(flag==0) cout<<"NO"<<endl;
    }
	return 0;
}

实测AC

2022/10/31 16:38
加载中...