哪位大佬可以跟我讲一讲为什么我这个程序过了?
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
#include<deque>
#include<bitset>
#include<cmath>
#include<cstdlib>
using namespace std;
int t,f;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
long long n,x,y,k;
cin>>t;
while(t--){
cin>>n>>k;
f=0;
if(k==0||n==k){
cout<<0<<" "<<n<<endl;
continue;
}
x=k,y=n-k;
if(x%y==k){
cout<<x<<" "<<y<<endl;
continue;
}
if(n-k<k||n%k==0){
cout<<-1<<endl;
continue;
}
for(long long i=1;(i+1)*(i+1)<=n-k;i++){
long long a=1ll*i;
if((n-k)%(a+1)!=0) continue;
if((a*n+k)%(a+1)!=0&&(((n-k)/(a+1)*n+k)%((n-k)/(a+1))!=0)) continue;
x=(a*n+k)/(a+1),y=(n-k)/(a+1);
if(x%y!=k){
x=((n-k)/(a+1)*n+k)/((n-k)/(a+1)),y=n/((n-k)/(a+1));
if(x%y!=k) continue;
cout<<x<<" "<<y<<endl;
f=1;
break;
}
cout<<x<<" "<<y<<endl;
f=1;
break;
}
if(f==1) continue;
cout<<-1<<endl;
}
return 0;
}