1、本题用扩展欧几里得即可。
#include <cstdio>
#include <cmath>
using namespace std;
void gcd(int a,int b,int &d,int &x,int &y){
if(!b){d=a;x=1;y=0;}
else{gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
int main()
{
int T,a,b,d,p,q,x,k;
scanf("%d",&T);
while(T--){
scanf("%d%d",&x,&k);
a=floor((double)x/k);
b=ceil((double)x/k);
gcd(a,b,d,p,q);
printf("%d %d\n",x*p/d,x*q/d);
}
return 0;
}