推箱子
题号:NC207619
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给你一个 10 行 10 列的地图,地图上有一定数量的箱子和一个人,现在让你完成一些操作,输出最后的地图状态。

操作有四种,描述如下:

move x: x是非负整数,表示你向正上方前进 x 步,如果即将走出地图,则停止。如果面前有箱子,则将其向前推,可同时推多个箱子。

turn left: 地图向左旋转90度

turn right: 地图向右旋转90度

turn back: 地图向右旋转180度

输入描述:

第一行包含一个整数 T ( 1 ≤ T ≤ 10 ) 表示共有T组测试样例;

输入前 10 行,每行10个字符,给出棋盘状态。“.”表示该格为空,“@”表示人,字母表示的箱子。

接下来每组的第一行有一个整数 k ( 1 ≤ k ≤ 1000 ) k 为操作数
接下来 k 行,每行一个操作( 1 ≤ x ≤ 10 )

输出描述:


输出 10 * 10 的地图状态
示例1

输入

复制
1
..........
..........
..........
..........
..........
..........
.....@....
.........a
.........b
.........c
4
turn left
move 8
turn left
move 1

输出

复制
b.........
a.........
@.........
..........
..........
..........
..........
..........
..........
..........