CF329D The Evil Temple and the Moving Rocks
题目描述
重要提示:所有可能的测试点都在预测试中,所以你不需要在此题中 hack 别人的代码。如果你通过了预测试,也一定会通过系统测试。
你是一名正在一座邪恶神庙中冒险的冒险者。在打败了几只弱小的怪物后,你来到了一间由 $n \times n$ 个方格地砖组成的正方形房间,房间四周完全被墙壁包围。在房间的尽头有一扇门,被恶魔的魔法力量锁住了。门上刻着如下铭文:
磐石相撞之声将唤醒此门!
作为一名资深冒险者,你立刻明白了其中的含义。在隔壁的房间里,有无限数量的魔法石。这些石头共有四种类型:
- '^':这种石头会向上移动;
- '':这种石头会向右移动;
- 'v':这种石头会向下移动。
想要打开这扇门,首先需要在某些地砖上放置石头(每个地砖最多放置一个石头)。然后,你选择一个自己放置的石头并激活它。被激活的石头会按其方向移动,直到撞到另一个石头或撞到房间的墙壁为止(如果它所朝的方向已经有障碍物则不会移动)。随后,该石头被“去激活”。如果撞到的是墙壁,或者已累计发生 $10^{7}$ 次石头被激活事件,那么石头的移动就终止。否则,被撞到的石头将被激活,并重复上述过程。
如果某颗石头在撞到墙壁或其它石头之前至少移动了一个格子,那么会发出一声声响。一旦发出的声响次数至少达到 $x$,门就会打开。只要声响数已达到 $x$,后续的石头运动是否继续发生都不影响开门。
下图展示了四种可能的石头移动情形:
- 至少移动一个格子,然后撞到另一颗石头。产生一声声响,被撞的石头被激活。
- 至少移动一个格子,然后撞到墙壁(即房间边界)。产生一声声响,石头移动结束。
- 因为前方有石头挡路而无法移动。被堵住的那颗石头被激活,但不会产生声响。
- 因为墙壁挡路而无法移动。不产生声响,移动结束。
假定你可以从隔壁房间获得无限数量的每种石头。你已经知道怎么做了——摆放石头并打开大门吧!
输入格式
第一行包含两个整数 $n$ 和 $x$,表示房间的大小和打开门所需的最小声响次数。本题共有三组测试数据:
- $n=5, x=5$;
- $n=3, x=2$;
- $n=100, x=10^5$。
所有这些测试点都在预测试中。
输出格式
输出 $n$ 行,每行由 $n$ 个字符组成 —— 第 $i$ 行第 $j$ 个字符表示第 $i$ 行第 $j$ 列该格子的内容,只能是如下字符之一:
- '^', '', 或 'v':表示该格子上有相应方向的石头;
- '.':表示该格子为空。
之后再输出两个整数 $r$ 和 $c$($1 \leq r, c \leq n$),表示你首先激活的那颗石头位于第 $r$ 行第 $c$ 列。该格子必须有石头。
如果有多组解,输出任意一组均可。
说明/提示
下面对第一个样例的模拟,并展示已产生的声响数。
 0声响
 1声响
 2声响
 3声响
 4声响
 还是4声响
在上图中,激活的石头在 '^' 和 '