用的二分来做,复杂度1e7为啥会T啊
#include<bits/stdc++.h>
#define int long long
using namespace std;
int k;
int solve(int l,int r,int sum,int p){
int x=(l+r)/2;
int y=sum-x;
if(l==r){
if(x*y==p) return x;
else return -1;
}
if(p==x*y) return x;
else if(x*y<p) return solve(x+1,r,sum,p);
else if(x*y>p) return solve(l,x-1,sum,p);
}
signed main(){
scanf("%lld",&k);
for(int cas=1;cas<=k;cas++){
int a=0,b=0,c=0;
scanf("%lld%lld%lld",&a,&b,&c);
int m=a-b*c+2,a1,a2;
a1=solve(1,m,m,a);
a2=m-a1;
if(a1==-1) printf("NO\n");
else printf("%lld %lld\n",a1,a2);
}
return 0;
}