atcoder#ARC122E. [ARC122E] Increasing LCMs

[ARC122E] Increasing LCMs

题目描述

長さ N N の正整数列 A1,A2,,AN A_1,A_2,\cdots,A_N があります. あなたは,これらの整数を並び替えることで,正整数列 x1,x2,,xN x_1,x_2,\cdots,x_N を作ろうとしています. この時,x x は以下の条件を満たす必要があります.

  • yi=LCM(x1,x2,,xi) y_i=\operatorname{LCM}(x_1,x_2,\cdots,x_i) と定義する.ここで,LCM \operatorname{LCM} は与えられた整数たちの最小公倍数を返す関数である.このとき,y y は狭義単調増加である.つまり,y1 < y2 <  < yN y_1\ <\ y_2\ <\ \cdots\ <\ y_N が成り立つ.

条件を満たすような x x が存在するか判定し,存在するなら一つ例を示してください.

输入格式

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

N N A1 A_1 A2 A_2 \cdots AN A_N

输出格式

条件を満たすような x x が存在する場合,以下の形式で答えを出力せよ.

Yes x1 x_1 x2 x_2 \cdots xN x_N

存在しない場合,No と出力せよ.

题目大意

给定长度为 NN 的正整数序列 {Ai}\{A_i\},满足 AiA_i 单调升。

问是否能将 {Ai}\{A_i\} 重排为序列 {xi}\{x_i\},满足:

yi=LCM(x1,,xi)y_i = \operatorname{LCM}(x_1, \dots, x_i)1i<N,yi<yi+1\forall 1\le i<N, y_i<y_{i+1}(即 yiy_i 单调升)。

3
3 4 6
Yes
3 6 4
3
2 3 6
No
10
922513 346046618969 3247317977078471 4638516664311857 18332844097865861 81706734998806133 116282391418772039 134115264093375553 156087536381939527 255595307440611247
Yes
922513 346046618969 116282391418772039 81706734998806133 255595307440611247 156087536381939527 134115264093375553 18332844097865861 3247317977078471 4638516664311857

提示

制約

  • 1  N  100 1\ \leq\ N\ \leq\ 100
  • $ 2\ \leq\ A_1\ <\ A_2\ \cdots\ <\ A_N\ \leq\ 10^{18} $
  • 入力される値はすべて整数である

Sample Explanation 1

x=(3,6,4) x=(3,6,4) のとき, - y1=LCM(3)=3 y_1=\operatorname{LCM}(3)=3 - y2=LCM(3,6)=6 y_2=\operatorname{LCM}(3,6)=6 - y3=LCM(3,6,4)=12 y_3=\operatorname{LCM}(3,6,4)=12 となり,y1 < y2 < y3 y_1\ <\ y_2\ <\ y_3 を満たします.

Sample Explanation 2

どのように A A を並び替えても条件を満たすことができません.