問題一覧 > 通常問題

No.3245 Payment with 8-rep Currency

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 31
作問者 : AngrySadEight / テスター : hamamu 👑 ygussany
ProblemId : 12486 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-08-19 01:41:11

問題文

$8$ ユキドル,$88$ ユキドル,$888$ ユキドル,$8888$ ユキドルの各貨幣を使って,貨幣の枚数に偏りのないようにちょうどの金額を払えますか?

yuki 国では,通貨単位として「ユキドル」が用いられています(以降「$x$ ユキドル」のことを,$x$ の前に "Y" をつけて "Y $x$"と表記します).貨幣は Y $8$,Y $88$,Y $888$,Y $8888$ の $4$ 種類です.

yuki 国に住んでいる Alice は,とある店で買い物をしたところ,会計金額が Y $N$ となりました.

Alice は,手元に Y $8$,Y $88$,Y $888$,Y $8888$ の各貨幣をそれぞれ $10^{100}$ 枚持っています.

お金の支払い方にこだわりのある Alice は,以下の条件を満たすように支払いをしたいです.

  • ちょうどの金額を支払う.
    • すなわち,Y $8$,Y $88$,Y $888$,Y $8888$ の各貨幣を支払った枚数を $A, B, C, D$ としたとき,$8A + 88B + 888C + 8888D = N$ を満たす.
  • どの貨幣についても,支払った枚数は,支払いに用いた全体の枚数の半分未満である.
    • すなわち,$A, B, C, D < \dfrac{S}{2}$(ただし $S = A + B + C + D$)を満たす.

以上の条件を満たす Y $N$ の支払い方が存在するかどうか判定し,存在する場合は $1$ つ求めてください.

$T$ 個のテストケースが与えられるので,それぞれについて答えてください.

制約

  • 入力は全て整数
  • $1 \leq T \leq 8.88 \times 10^4$
  • $1 \leq N \leq 8.88 \times 10^{17}$

入力

入力は以下の形式で標準入力から与えられる.ここで,$\mathrm{case}_i$ は $i$ 番目のテストケースを表す.

$T$
$\mathrm{case}_1$
$\mathrm{case}_2$
$\vdots$
$\mathrm{case}_T$

各ケースは以下の形式で与えられる.

$N$

出力

$T$ 行出力せよ.$i$ 行目には,$i$ 番目のテストケースに対して,条件を満たす Y $N$ の支払い方が存在しない場合は $-1$ を,存在する場合は Y $8$,Y $88$,Y $888$,Y $8888$ の各貨幣を支払った枚数の組 $A, B, C, D$ を空白区切りでこの順に出力せよ.答えが複数ある場合,そのうちどれを出力しても正答とみなされる.

サンプル

サンプル1
入力
4
8
984
80574336
878787878787878787
出力
-1
1 1 1 0
888 8888 888 8888
-1

$1$ 個目のテストケースについて,$(A, B, C, D) = (1, 0, 0, 0)$ という支払い方は $1$ つ目の条件を満たす唯一の支払い方ですが,これは $2$ つ目の条件を満たしません.そのため,条件を満たす支払い方は存在しません.

$2$ 個目のテストケースについて,$(A, B, C, D) = (1, 1, 1, 0)$ という支払い方は,$888 \times 1 + 88 \times 1 + 8 \times 1 = 984$ を満たすために $1$ つ目の条件を満たしており,どの貨幣の使用枚数も全体の枚数である $3$ 枚の半分未満なので $2$ つ目の条件も満たします.したがって,この出力は正解となります.

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。