CF 7C. Line(扩展欧几里德)

时间:2023-03-08 20:17:08
CF 7C. Line(扩展欧几里德)

题目链接

AC了。经典问题,a*x+b*y+c = 0整数点,有些忘记了扩展欧几里德,复习一下。

 #include <cstdio>
#include <iostream>
#include <cmath>
using namespace std ;
#define LL __int64
LL x,y;
LL ext_eulid(LL a,LL b)
{
LL t,d;
if(b == )
{
x = ;
y = ;
return a;
}
d = ext_eulid(b,a%b);
t = x;
x = y;
y = t - (a/b)*y;
return d;
}
int main()
{
LL A,B,C,d;
cin>>A>>B>>C;
d = ext_eulid(A,B);
if((-C)%d != )
{
printf("-1\n");
}
else
{
x = x*((-C)/d);
y = y*((-C)/d);
cout<<x<<" "<<y<<endl;
}
return ;
}