P1815 蠕虫游戏 _NOI导刊2011提高(02)

    • 80通过
    • 226提交
  • 题目提供者
  • 评测方式 云端评测
  • 标签
  • 难度 普及/提高-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 体验新版界面

    最新讨论 显示

    推荐的相关题目 显示

    题目描述

    蠕虫是一个古老的电脑游戏,它有许多版本。但所有版本都有一个共同的规则:操纵一条蠕虫在屏幕上转圈,并试着去避免撞到自己或障碍物。 

        这里我们将模拟一个简单的版本。游戏将在50×50的棋盘上进行,棋盘的左上角为(1,1),蠕虫在初始时是一串20个相连的方格。所谓相连是指方格在水平或垂直方向上相接。蠕虫开始时是水平地伸展开的,从(25,11)到(25,30)。其中(25,30)是它的头。蠕虫只能向东(E)、西(W)、南(s)、北(N)四个方向移动,但不能向自己移动,因此在开始时向西(W)是不允许的。每次移动时,蠕虫向给定的方向移动,一次只移一格,并且保持它的长度不变。因此只有蠕虫的头和尾所占据的方格在移动一步后被改变。注意:蠕虫的头能移动到虫尾刚刚让出的空格。 

        你将被给定一系列移动指令并模拟虫的移动,直到:蠕虫撞上了自己;蠕虫越出了棋盘;蠕虫成功地完成了这些指令。在前两种情况下你应当忽略剩下的指令。

    输入输出格式

    输入格式:

    每个输入文件包含了多组数据。每个数据占2行,第1行是一个整数n(n<100),表示移动指令的指令数(以n=0表示输入结束);第2行包括了n个字符(E、W、S、N),字符之间没有空格,表示移动的指令。

    输出格式:

    每个数据输出一行,格式为以下3种中的一种: 

    The worm ran into itself on move m. 

    The worm ran off the board on move m. 

    The worm successfully made all m moves.

    注:m是你要决定输出的步数。

    输入输出样例

    输入样例#1: 复制
    18 
    NWWWWWWWWWWSESSSWS 
    20 
    SSSWWNENNNNNWWWWSSSS 
    30 
    EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 
    13 
    SWWWWWWWWWNEE 
    0
    输出样例#1: 复制
    The worm successfully made all 18 moves. 
    The worm ran into itself on move 9. 
    The worm ran off the board on move 21. 
    The worm successfully made all 13 moves.
    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。