atcoder#ARC128A. [ARC128A] Gold and Silver

[ARC128A] Gold and Silver

题目描述

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

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

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

输入格式

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

N N A1 A_1 A2 A_2 \cdots AN A_N

输出格式

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

v1 v_1 v2 v_2 \cdots vN v_N

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

题目大意

你最近在做金银交易,在接下来的 NN 天中,每天都有一个汇率 AiA_i。起初你有 11克金,没有银。

每天你可以兑换手中的金银(也可以不兑换),如果你手中有 xx 克金,可以全部兑换为 x×Aix \times A_i 克银,同理,如果有 xx 克银,可以全部兑换为 x/Aix / A_i 克金。

请问 NN 天后最多能得到多少克金。你只需要输出方案

3
3 5 2
0 1 1
4
1 1 1 1
0 0 0 0
10
426877385 186049196 624834740 836880476 19698398 709113743 436942115 436942115 436942115 503843678
1 1 0 1 1 1 1 0 0 0

提示

制約

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

Sample Explanation 1

以下のように行動するのが最適です. - 1 1 日目: なにもしない. - 2 2 日目: 1 1 グラムの金を銀と交換し,5 5 グラムの銀を得る. - 3 3 日目: 5 5 グラムの銀を金と交換し,2.5 2.5 グラムの金を得る.

Sample Explanation 2

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