exgcdライン(CF)

C.ライン
試験当たりの制限時間:1秒
テストごとのメモリ制限
256メガバイト
入力
標準入力
出力
標準出力

平面上の線は、方程式によって記述される  アックス  +  により  +  C  座標が整数であるから=あなたはこの線上の任意の点を見つけることである0、   5・10 ^ - 18に  5×10 ^ 18包括的な、またはそれにこのような点が存在しないことを知ります。

入力

最初の行は三つの整数含ま  A、  B  及び  C  ( - 2・10 ^ 9≤  A、  B、  C  ≤2・10 ^ 9) -ライン方程式の係数に対応します。それは、それが保証されて  A ^ 2 +  B ^ 2> 0を。

出力

必要な点が存在する場合、出力の座標、そうでなければ出力  -1。

入力
2 5 3
出力
-3 6 

exgcdテンプレートタイトル。式cでフォーム斧+のソリューションを求めてexgcd =特定の溶液ベースの参照を得られた溶液によって得ることができます。
#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
typedefの長い 長いLL。
LLのexgcd(-1,11,11-のB、LL&X&LL Y)
{ 
    LLのD = もし(!B = 0 ){ 
        D = GCD(B、%のB、Y、X)。
        Y - =(A / B)* X。
    } 
     {X = 1 ; Yが= 0 ;}
     戻りD。
} 
 
int型のmain()
{ 
    LL、B、C、X、Y。
    CIN >> A >> B >> C。
    LL D =exgcd(A、B、X、 Y); // シークは= GCD(によって斧+である B) 溶液
     IF(!Dの%= C 0)<< COUT " -1 \ N- " ; // cはDの複数のない解決策ではない場合は
     他の X *(C / D)<< - COUT << "  " << - Y *(C / D)<< ENDL; = GCDによって//方程式斧+(A 、B)、C / GCDによって両側(B)しながら 、 別の溶液を得るための唯一のXB、Y + Aは、
     戻り 0 ; 
}

 

 
  

おすすめ

転載: www.cnblogs.com/wengsy150943/p/11360031.html