atcoder#ABC146F. [ABC146F] Sugoroku
[ABC146F] Sugoroku
配点 : 点
問題文
高橋君は双六で遊んでいます。
この双六には から までの番号がついた 個のマスがあります。高橋君はマス からスタートし、ゴールするにはマス にちょうど止まらなければなりません。
この双六では、 から までの 種類の目が出るルーレットを使います。各手番で、高橋君はルーレットを回して出た目の数だけ進みます。この結果マス を越えて進むことになる場合、ゲームオーバーとなります。
また、いくつかのマスは「ゲームオーバーマス」であり、それらのマスに止まってもゲームオーバーとなります。マスの情報は長さ の文字列 で与えられます。各 について、 のときマス はゲームオーバーマスであり、 のときマス はゲームオーバーマスではありません。
高橋君がゲームオーバーとならずに最短手数でゴールするときの出目を順に答えてください。そのような目の出方が複数存在するときは、そのうち出目の列が辞書順で最小であるものを出力してください。ゲームオーバーとならずにゴールすることが不可能である場合は、 を出力してください。
制約
- は
0
と1
から成る -
0
-
0
入力
入力は以下の形式で標準入力から与えられる。
出力
ゴールすることが可能である場合、そのような最短の出目の列のうち辞書順で最小のものを出力せよ。ゴールすることが不可能である場合、 を出力せよ。
9 3
0001000100
1 3 2 3
, , , の順に目を出すと、高橋君はマス , , を経由してマス に到達することが出来ます。高橋君が 手以内にマス に到達することは不可能であり、また 手でマス に到達するような出目の列の中ではこれが辞書順で最小です。
5 4
011110
-1
高橋君はマス に到達することが出来ません。
6 6
0101010
6