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$ 的地图表示当前局势。 地图示例(某一轮中的输入): ![地图示例](https://cdn.luogu.com.cn/upload/image_hosting/y1nw09cg.png)

输出格式

每一轮你需要输出一个方向字符之一,代表贪吃蛇的移动方向: * `w`:上移(up) * `s`:下移(down) * `a`:左移(left) * `d`:右移(right)

说明/提示

* 输出后**必须换行** * 紧接着使用 `std::flush` 清空输出缓冲区,确保评测机可以接收到你的方向决策。 示例代码(C++): ```cpp std::cout