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 }
  • 相关阅读:
    mybatis 入门基础
    spring学习总结
    综合练习:词频统计
    组合数据类型综合练习
    Python基础综合练习
    熟悉常用的Linux操作
    1.大数据概述
    C程序语法(无左递归)
    文法规则
    实验一词法分析报告
  • 原文地址:https://www.cnblogs.com/handsomecui/p/4907798.html
Copyright © 2011-2022 走看看