問題文
長さがNの数列Aが与えられます.この数列に対して,以下の操作を可能な限り繰り返すと,最後は数列の要素数が1になります.その数を出力してください.
操作
- 数列Aの中から,x≤y を満たす任意の2つの数x,yを取り出す.
- x=y ならば,xのみを数列Aに戻し,yは削除する.
- x<y ならば,x と y−x を数列Aに戻す.
(最後に残る数は一意に定まることが証明できます.)
制約
- 2≤N≤2×105
- 1≤Ai≤1018(1≤i≤N)
- 入力はすべて整数
入力
出力
数列Aに対して,操作を可能な限り繰り返した後最後に残る数を出力.
サンプル
例えば以下の順で操作します.
- 最初,数列Aは [126,282,96,132,72] です.
- 126 と 282 を取り出して 282−126=156 を行い,数列Aを [126,156,96,132,72] にします.
- 126 と 156 を取り出して 156−126=30 を行い,数列Aを [126,30,96,132,72] にします.
- 126 と 132 を取り出して 132−126=6 を行い,数列Aを [126,30,96,6,72] にします.
- 96 と 126 を取り出して 126−96=30 を行い,数列Aを [30,30,96,6,72] にします.
- 72 と 96 を取り出して 96−72=24 を行い,数列Aを [30,30,24,6,72] にします.
- 30 と 72 を取り出して 72−30=42 を行い,数列Aを [30,30,24,6,42] にします.
- 30 と 42 を取り出して 42−30=12 を行い,数列Aを [30,30,24,6,12] にします.
- 30 と 30 を取り出して片方を削除し,数列Aを [30,24,6,12] にします.
- 24 と 30 を取り出して 30−24=6 を行い,数列Aを [6,24,6,12] にします.
- 12 と 24 を取り出して 24−12=12 を行い,数列Aを [6,12,6,12] にします.
- 12 と 12 を取り出して片方を削除し,数列Aを [6,12,6] にします.
- 6 と 12 を取り出して 12−6=6 を行い,数列Aを [6,6,6] にします.
- 6 と 6 を取り出して片方を削除し,数列Aを [6,6] にします.
- 6 と 6 を取り出して片方を削除し,数列Aを [6] にします.
最後に残る数は 6 です.