只有10分,救救孩子吧(思路:二分)
#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
int k,n,e,d;
signed main()
{
cin>>k;
while (k--)
{
cin>>n>>e>>d;
bool f=0;
int m=n-e*d+2;
int l=1,r=m/2;
while (l<r)
{
int mid=l+r>>1;
if (mid*(m-mid)<n) l=mid+1; //和一定,差小积大
if (mid*(m-mid)>n) r=mid-1;
if (mid*(m-mid)==n) {cout<<mid<<' '<<m-mid<<endl;f=1;break;}
}
if (l*(m-l)==n) {cout<<l<<' '<<m-l<<endl;f=1;}
else if (f==0) cout<<"NO"<<endl;
}
return 0;
}