T475852 贪吃蛇(IO交互)
题目背景
最近,ycn 在机房迷上了一款叫 “贪吃蛇” 的游戏,但他操作太菜了,总是通不了关。于是他请求你来帮忙!
> ???? 本题为交互题,题目底部附有 SPJ 与可游玩代码链接。
题目描述
你将操控一条贪吃蛇,在一个 $n \times m$ 的矩形地图中活动。游戏以回合制进行,每一轮你都将获得一张地图,并作出一个方向决策,控制蛇移动。共有`p`轮。
地图中的字符含义如下:
| 字符 | 含义 |
| --- | ----- |
| `#` | 墙壁 |
| ` ` | 空地 |
| `@` | 苹果 |
| `O` | 贪吃蛇身体 |
蛇每吃掉一个苹果就会变长一格。每轮地图都会根据你的决策实时更新。
注意事项:
* 墙壁 `#` 只出现在地图的边缘,防止蛇超出边界。
* 苹果 `@` 永远不会生成在蛇身 `O` 或墙壁 `#` 上,也不会重复刷新,每轮最多出现一个苹果。
* 你需要在 $n + m + 2 \times \text{size}$ 回合内吃到苹果,初始蛇长 $\text{size} = 4$。
* 若蛇头撞墙或撞到自身,游戏立即失败。
输入格式
地图大小固定为:
$$
n = 20,\quad m = 40
$$
每一轮,你会收到一个大小为 $20 \times 40$ 的地图表示当前局势。
地图示例(某一轮中的输入):

输出格式
每一轮你需要输出一个方向字符之一,代表贪吃蛇的移动方向:
* `w`:上移(up)
* `s`:下移(down)
* `a`:左移(left)
* `d`:右移(right)
说明/提示
* 输出后**必须换行**
* 紧接着使用 `std::flush` 清空输出缓冲区,确保评测机可以接收到你的方向决策。
示例代码(C++):
```cpp
std::cout