C. Line
time limit per test
1 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputA line on the plane is described by an equation Ax + By + C = 0. You are to find any point on this line, whose coordinates are integer numbers from - 5·1018 to 5·1018 inclusive, or to find out that such points do not exist.
Input
The first line contains three integers A, B and C ( - 2·109 ≤ A, B, C ≤ 2·109) — corresponding coefficients of the line equation. It is guaranteed that A2 + B2 > 0.
Output
If the required point exists, output its coordinates, otherwise output -1.
Examples
Input
2 5 3
Output
6 -3
(哇,第一次在cf上做到模板题
题意:拓展欧几里得求解ax+by=c的模板题
附ac代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std; 7 typedef long long ll; 8 int gcd(ll a,ll b) 9 { 10 return b==0?a:gcd(b,a%b); 11 } 12 void exgcd(ll a,ll b,ll &x,ll &y) 13 { 14 ll d; 15 if(!b) 16 { 17 d=a; 18 x=1; 19 y=0; 20 } 21 else 22 { 23 exgcd(b,a%b,y,x); 24 y-=x*(a/b); 25 } 26 } 27 int main() 28 { 29 ios::sync_with_stdio(false); 30 cin.tie(0); 31 cout.tie(0); 32 ll a,b,c; 33 ll x,y; 34 cin>>a>>b>>c; 35 c=-c; 36 ll d=gcd(a,b); 37 if(c%d) 38 cout<<-1<<endl; 39 else 40 { 41 a/=d;b/=d;c/=d; 42 exgcd(a,b,x,y); 43 cout<<x*c<<" "<<y*c<<endl; 44 } 45 46 return 0; 47 }