010 - 数列の復元
時間制限 1 秒 / メモリ制限 256 MB / 得点 10 / x 0 /
問題
長さ$N$の数列$T=(T_1,T_2,⋯,T_N)$と、正整数$X$,$Y$が与えられる。あなたは全ての要素の値が0である長さ$N$の数列$A=(A_1,A_2,⋯,A_N)$に対して操作を行い、数列$T$と等しくなるようにしたい。 数列$A$に対して以下の操作$f_k$を複数回行うことができる。ただし$k=1,2,⋯,N$である。
- $f_k$:数列$A$の$k$番目の要素に$X$を加算し、それ以外の要素から$Y$を減算する。
数列$A$を数列$T$と等しくするために行った各操作の回数の列を求めたい。ただし、数列$A$と$T$を等しくすることが不可能な場合もある。
数列$T$と2つの正整数が与えられたとき、数列$A$を数列$T$と等しくするための各操作の回数の列を出力するプログラムを作成せよ。ただし、そのような各操作の回数の列が複数存在する場合は、操作の回数の総和が最も少ないものの列を出力せよ。
入力
入力は以下の形式で与えられる。
$N$ $X$ $Y$ $T_1$ $T_2$ ... $T_N$
1行目に、数列の要素数$N$ ($2 \leq N \leq 200,000$)と2つの正整数$X,Y$ ($1 \leq X,Y \leq 100,000,000$)が与えられる。続く1行に、$i$番目の数列の要素$T_i$ ($-1,000,000,000 \leq T_i \leq 1,000,000,000$)が整数で与えられる。
出力
数列を等しくすることができる場合は、各操作の回数を1行に空白区切りで出力する。数列を等しくすることができない場合は、「 -1 」を出力する。
入出力例
入力例1
5 4 1 -5 10 0 0 -5
出力例1
0 3 1 1 0
入力例2
5 4 2 -5 10 0 0 -5
出力例2
-1