atcoder#ARC128A. [ARC128A] Gold and Silver

[ARC128A] Gold and Silver

配点 : 400400

問題文

すぬけくんは今,11 グラムの金と 00 グラムの銀を持っています. 彼はこれから NN 日かけて金と銀の取引を行います. それぞれの日で,"なにもしない" もしくは "交換をする" のいずれかの行動をとります. ii 日目 (1iN1 \leq i \leq N) に交換をする場合,以下のことが起こります.

  • 交換前に金を xx グラム持っていた場合,それらをすべて銀と交換し,x×Aix \times A_i グラムの銀を得る. 逆に,銀を xx グラム持っていた場合,それらをすべて金と交換し,x/Aix / A_i グラムの金を得る.

すぬけくんの目標は,最終的に持っている金の量を最大化することです. 彼の目標を達成するような方法を一つ求めてください.

制約

  • 2N2000002 \leq N \leq 200000
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力される値はすべて整数である

入力

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

NN

A1A_1 A2A_2 \cdots ANA_N

出力

答えを以下の形式で出力せよ.

v1v_1 v2v_2 \cdots vNv_N

ただしここで viv_iii 日目の行動を表す整数 (0vi10 \leq v_i \leq 1) であり,vi=0v_i=0 ならば何もしないことを,vi=1v_i=1 ならば交換をすることを表す. なお,答えが複数通り存在する場合,そのどれを出力しても正解とみなされる.

3
3 5 2
0 1 1

以下のように行動するのが最適です.

  • 11 日目: なにもしない.
  • 22 日目: 11 グラムの金を銀と交換し,55 グラムの銀を得る.
  • 33 日目: 55 グラムの銀を金と交換し,2.52.5 グラムの金を得る.
4
1 1 1 1
0 0 0 0

(v1,v2,v3,v4)=(1,1,1,1)(v_1,v_2,v_3,v_4)=(1,1,1,1) なども正解とみなされます.

10
426877385 186049196 624834740 836880476 19698398 709113743 436942115 436942115 436942115 503843678
1 1 0 1 1 1 1 0 0 0