atcoder#ARC147A. [ARC147A] Max Mod Min

[ARC147A] Max Mod Min

题目描述

長さ N N の正整数列 A=(A1,A2,,AN) A=(A_1,A_2,\dots,A_N) が与えられます。

あなたは以下の操作を A A の長さが 1 1 になるまで繰り返します。

  • 操作を行う時点での A A の長さを k k とする。$ \max(\{A_1,A_2,\dots,A_{k}\})=A_i,\min(\{A_1,A_2,\dots,A_{k}\})=A_j $ かつ i  j i\ \neq\ j を満たす整数の組 (i,j) (i,j) を選び、Ai A_i (Ai mod Aj) (A_i\ \bmod\ A_j) で置き換える。このとき、Ai=0 A_i=0 となったのであれば A A から Ai A_i を削除する。

どのように操作を行っても操作回数は一定であることが証明できます。操作回数を求めてください。

输入格式

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

N N A1 A_1 A2 A_2 \dots AN A_N

输出格式

答えを出力せよ。

题目大意

有一个长度为nn的正整数序列A=(A1,A2,...,AN)A=(A_1,A_2,...,A_N)

重复以下操作直到序列AA的长度变为11

  • kk为操作前序列AA的长度.选择整数iijj,使AiA_i为序列AA中的最大值,AjA_j为序列AA中的最小值,且iji≠j。然后,用(AimodAj)(A_i \bmod A_j)替换AiA_i。如果AiA_i的值在操作后变为00,从序列AA中删除AiA_i.

请求出需要执行的操作的数量。我们可以证明,在操作中无论如何选择i,ji,j,操作的总数是不变的

3
2 3 6
3
6
1232 452 23491 34099 57341 21488
12

提示

制約

  • 2  N  2 × 105 2\ \le\ N\ \le\ 2\ \times\ 10^5
  • 1  Ai  109 1\ \le\ A_i\ \le\ 10^9
  • 入力は全て整数である。

Sample Explanation 1

以下のように操作を行うことになります。操作回数は 3 3 回です。 - i=3,j=1 i=3,j=1 を選ぶ。A3=0 A_3=0 となるため、A A から A3 A_3 を削除する。A=(2,3) A=(2,3) となる。 - i=2,j=1 i=2,j=1 を選ぶ。A2=1 A_2=1 となる。A=(2,1) A=(2,1) となる。 - i=1,j=2 i=1,j=2 を選ぶ。A1=0 A_1=0 となるため、A A から A1 A_1 を削除する。A=(1) A=(1) となる。A A の長さが 1 1 になったため、操作を終了する。