atcoder#AGC001B. [AGC001B] Mysterious Light

[AGC001B] Mysterious Light

题目描述

高橋君は 1 1 辺の長さが N N 3 3 枚の鏡を正三角形状に組み合わせました。 三角形の頂点をそれぞれ a, b, c a,\ b,\ c とします。

高橋君は、辺 ab ab 上の頂点 a a から X X の点から、辺 bc bc と平行に不思議な光を発射しました。 不思議な光は、普通の光と同じように真っすぐ進み、鏡に当たると反射するのですが、不思議な光がすでに通った点に当たったときにも反射をします。 例えば、N = 5, X = 2 N\ =\ 5,\ X\ =\ 2 のとき、不思議な光の軌跡は図の黄色い矢印のようになります。

btriangle.png

このように不思議な光を発射した時、不思議な光は必ず発射した点に戻ってくることが証明できます。 このとき、光の軌跡の長さが全体でいくらになるかを求めて下さい。

输入格式

入力は以下の形式で標準入力から与えられる。

N N X X

输出格式

光の軌跡全体の長さを出力せよ。

题目大意

题目描述

高桥くん有一个边长为 NN 的三枚镜子构成的正三角形, 顶点为 A,B,CA, B, C。他有一个超级步枪,放在 ABAB 段的 PP 点上,使得 AP=XAP=X。这个步枪将会沿着平行于 BCBC 的方向发射一道光。

光以直线传播,以镜子的形式反射,但是有一个特殊的地方:它会被自己的轨迹反射,当光回到步枪的时候,光被吸收。 下面的图显示了当 N=5,x=2N=5, x=2 时的光轨迹。

avatar

给定 NNxx,求出光线的总长度。

数据范围

对于所有数据,2N10122≤N≤10^{12}1xN11≤x≤N-1,保证 N,xN, x 是整数。

另外,有 300300 分的部分分保证 N1000N \le 1000

输入输出格式:

输入格式

第一行两个个整数 N,xN,x

输出格式

一个整数代表光线轨迹的长度。

感谢 @ToBiChi 提供翻译

5 2
12

提示

制約

  • 2N1012 2≦N≦10^{12}
  • 1XN1 1≦X≦N-1
  • N N X X はいずれも整数である。

部分点

  • N1000 N≦1000 を満たすデータセットに正解した場合は、300 300 点が与えられる。
  • 追加制約のないデータセットに正解した場合は、上記とは別に 200 200 点が与えられる。

Sample Explanation 1

問題文中の図のとおりです。 光の軌跡の長さは全体で 2+3+2+2+1+1+1 = 12 2+3+2+2+1+1+1\ =\ 12 となります。