1. paizaラーニングトップ
  2. レベルアップ問題集
  3. bit全探索メニュー(言語選択)
  4. 問題一覧 Rust(Beta)編
  5. ビット全探索 練習問題 3 Rust(Beta)編

bit全探索メニューのサムネイル
ビット全探索 練習問題 3 Rust(Beta)編(paizaランク B 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

長さ N の 1~9 からなる文字列 S が与えられます。
空文字列 T が存在します。
あなたは i = 1, 2, ... N の順に以下の操作を行います。

1. S の i 文字目を T の末尾に追加する
2. i ≦ N-1 なら、追加で以下のいずれか 1 つの操作を行う
・T の末尾に乗算記号 * を挿入する
・なにもしない

すべての操作を終えた後の T を数式とみたとき、値が K となるものを出力してください。
ただし、適切に操作を行うことで値が K となる数式が必ず存在することが保証されます。

入力される値

N K
S

・ 1 行目には、整数 N, K が与えられます。
・ 2 行目には、文字列 S が与えられます。
・ 入力は合計で 2 行からなり、入力値最終行の末尾に改行が 1 つ入ります。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力

すべての操作を終えた後の T を数式とみたとき、値が K となるものを一行で出力してください。
数字と数字、数字と乗算記号の間に空白を入れないように注意してください。

条件

すべてのテストケースにおいて、以下の条件をみたします。

・ 2 ≦ N ≦ 14
・ 1 ≦ K ≦ 10^18
・ |S| = N
・ S は 1~9 の数字からなる文字列
・ 文字列 S に操作を行うことで値が K となる数式が必ず存在する

入力例1

3 92
234

出力例1

23*4

入力例2

3 24
234

出力例2

2*3*4

入力例3

3 234
234

出力例3

234

入力例4

10 2232310077
9637726933

出力例4

963*772693*3

問題一覧へ戻る

ページの先頭へ戻る