#AT1226. 跑得快
跑得快
题目描述
高桥正在玩一个叫做“跑得快”的棋盘游戏。 棋盘上一共有 个方格,编号从到 。
高桥从方格开始,他必须在方格 停下来才能赢得比赛。
这个游戏使用一个有 个数字的转盘,数字从到 。
每次高桥都要旋转转盘。如果当他在方格时出现数字 ,他就会移到方格 。
如果这使他超出方格 ,他就会输掉比赛。此外,一些方格是“游戏结束方格”。
如果他停在其中一个方格上,他也会输掉比赛。给定一个长度为 的字符串,表示哪些方格是游戏结束方格。
对于每个,如果 ,则方格是游戏结束方格,否则方格不是。
找到转盘中数字的序列,高桥可以在尽可能少的回合中赢得比赛。
如果有多个这样的序列,找出字典序最小的一个。
如果高桥不能赢得比赛,则打印 -1。
输入
第1行,两个正整数
第2行,一个长为的字符串。表示第格是一个普通格子;表示第格是一个GameOver格。
输出
输出用最短回合到达格时,每回合骰子的点数组成的序列,若有多种序列回合数都是最短,输出其中字典序最小的。
如果无法到达号格子,输出-1。
9 3
0001000100
1 3 2 3
样例说明
按的顺序扔出骰子的点数,高桥君会经过第格最终到达第格。
无法在次以内到达第格。是所有次到达第格的点数序列中,字典序最小的。
5 4
011110
-1
6 6
0101010
6
提示
-
0
-
0