样例中第二行的1600,3199,30399,第五行的2,50,56不输出数字只输出空行
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t;
int Qread(){
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-1;
ch=getchar();
}
while(isdigit(ch)){
x=(x<<3)+(x<<1)+ch^'0';
ch=getchar();
}
return x*f;
}
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
void exgcd(int a,int b,int&x,int&y){
if(!b){
x=1;
y=0;
return;
}
exgcd(b,a%b,x,y);
int k=x;
x=y;
y=k-y*(a/b);
}
signed main(){
t=Qread();
while(t--){
int u,v,w,x,y;
u=Qread();
v=Qread();
w=Qread();
if(w%gcd(u,v)) puts("-1");
else{
int d=gcd(u,v);
exgcd(u,v,x,y);
x*=w/d;
y*=w/d;
int p=v/d,q=u/d,k;
if(x<0){
if((1-x)%p) k=(1-x)/p+1;
else k=(1-x)/p;
x+=p*k;
y-=q*k;
}
else{
k=(x-1)/p;
x-=p*k;
y-=q*k;
}
if(y>0){
printf("%lld ",(y-1)/q+1);
printf("%lld ",x);
printf("%lld ",(y-1)%q+1);
printf("%lld ",x+(y-1)/q*p);
printf("%lld ",y);
}
else{
printf("%lld ",x);
int k2;
if((1-y)%q) k2=(1-y)/q+1;
else k2=(1-y)/q;
printf("%lld ",y+q*k2);
}
}
puts("");
}
return 0;
}