扩展欧几里得--解一元线性方程CodeForces -7C
2015-10-31 13:58
351 查看
C. Line
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
A 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.
Sample test(s)
input
output
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
A 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.
Sample test(s)
input
2 5 3
output
6 -3
#include<stdio.h> #include<string.h> #include<math.h> #include<algorithm> using namespace std; typedef long long LL; LL gcd(LL a,LL b) { return b ? gcd(b, a%b) : a; } void euclid(LL a, LL b,LL &x, LL &y) { if(!b){ x = 1; y = 0 ;return ; } euclid(b,a%b,y,x); y -= x*(a/b); } int main() { __int64 a, b, c, x, y; while(scanf("%I64d%I64d%I64d",&a, &b, &c)==3) { c = -c; LL g = gcd(a,b); if(c%g) { printf("-1\n");continue; } a/=g; b/=g; c/=g; euclid(a,b,x,y); printf("%I64d %I64d\n",x*c,y*c); } return 0; }
相关文章推荐
- map的使用
- 剑指Offer--字符流中第一个不重复的字符
- 在java中输入某年某月,判断这一天是是这一年的第多少天
- ThreeMergeOne项目总结
- Python中*args 和**kwargs的用法探讨
- 进击的KFC:OC(五): 字典、集、数组排序
- 一些课后实践about java
- 如何获取一个范围内的随机整数
- Java排序
- codeforces 76A Gift 最小生成树
- [leetcode] 139. Word Break 解题报告
- mysql 修改 character_set_database 编码格式
- Asp.net mvc生成验证码
- C语言入门----输出语句
- 统计学习方法之决策树
- 用例图练习
- ubuntu下的mysql不支持中文,修改方法;
- cocos2dx播放音乐
- 收藏一个Ping的小工具类,可用于网络中检测目的设备是否在线
- 20151031团队建设有感