zoukankan      html  css  js  c++  java
  • B

    B - 楼下水题
    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u

    Description

    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 Input

    Input
    2 5 3
    Output
    6 -3
    题解:
    模版欧几里德;Ax+By=gcd;
    找到x,y;分式两边同乘以(-c/gcd)也就是x*(-c/gcd),y*(-c/gcd);就好了;
    代码:
     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 typedef long long LL;
     6 using namespace std;
     7 void e_gcd(LL &x,LL &y,LL &d,LL a,LL b){
     8     if(!b){
     9         d=a;
    10         x=1;
    11         y=0;//y可以为任意数;因为b为0 
    12     }
    13     else{
    14         e_gcd(x,y,d,b,a%b);//欧几里德;
    15         LL temp=x;
    16         x=y;
    17         y=temp-a/b*y;
    18     }
    19 }
    20 int main(){
    21     LL a,b,c,x,y,d;
    22     while(~scanf("%lld%lld%lld",&a,&b,&c)){
    23         e_gcd(x,y,d,a,b);
    24         //printf("%d %d %d
    ",x,y,d);
    25         if(c%d!=0)puts("-1");
    26         else printf("%lld %lld
    ",x*(-c/d),y*(-c/d));
    27     }
    28     return 0;
    29 }
  • 相关阅读:
    win10 增加一个新磁盘
    解释mysql 语句
    Impala 中invalidate metadata和refresh
    PPT 设置幻灯片母版
    python 中startswith()和endswith() 方法
    python 把函数的值赋给变量
    python 获取导入模块的文件路径
    MD5 算法
    python 删除特定字符所在行
    JS判断内容为空方法总结
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4907798.html
Copyright © 2011-2022 走看看