并非题解
2025-08-06 17:58:08
发布于:上海
7阅读
0回复
0点赞
code by Hyperion_1210
#include<iostream>
#include<algorithm>
int t;
bool flag(0);
int exgcd(int a,int b,long long &x,long long &y,int c){
if(!b){
if(c % a){
flag = 1;
return a;
}
x = c/a,y=0;
return a;
}
int tmp = exgcd(b,a%b,y,x,c);//int tmp=exgcd(b,a%b,x,y);
y -= (a/b)*x;//x = x - (a/b)*y;
//std::swap(x,y);
return tmp;
}
signed mian(void){
int a,b,c,d;
long long x,y;
flag = 0;
std::cin >> a >> b >> c;
d = exgcd(a,b,x,y,c);
if(flag){
std::cout << "-1\n";
return 0;
}
long long dx(b/d),dy(a/d),k(x%dx<1?x/dx-1:x/dx),x0(x-k*dx),y0(y+k*dy);
k = y%dy<1?y/dy-1:y/dy;
long long y1(y-k*dy),x1(x+k*dx);
if(y0<1){
std::cout << x0 << ' ' << y1 << '\n';
return 0;
}
long long num((x1-x0)/dx+1);
std::cout << num << ' ' << x0 << ' ' << y1 \
<< ' ' << x1 << ' ' << y0 << '\n';
return 0;
}
int main(){
std::cin.tie()->sync_with_stdio(0);
std::cout.tie();
std::cin >> t;
while(t--)mian();
return 0;
}
全部评论 1
2天前 来自 上海
0
有帮助,赞一个