Description


A robot has been programmed to follow the instructions in its path. Instructions for the next direction the robot is to move are laid down in a grid. The possible instructions are

N north (up the page)
S south (down the page)
E east (to the right on the page)
W west (to the left on the page)

For example, suppose the robot starts on the north (top) side of Grid 1 and starts south (down). The path the robot follows is shown. The robot goes through 10 instructions in the grid before leaving the grid.

Compare what happens in Grid 2: the robot goes through 3 instructions only once, and then starts a loop through 8 instructions, and never exits.

You are to write a program that determines how long it takes a robot to get out of the grid or how the robot loops around.

Input

There will be one or more grids for robots to navigate. The data for each is in the following form. On the first line are three integers separated by blanks: the number of rows in the grid, the number of columns in the grid, and the number of the column in which the robot enters from the north. The possible entry columns are numbered starting with one at the left. Then come the rows of the direction instructions. Each grid will have at least one and at most 10 rows and columns of instructions. The lines of instructions contain only the characters N, S, E, or W with no blanks. The end of input is indicated by a row containing 0 0 0.

Output

For each grid in the input there is one line of output. Either the robot follows a certain number of instructions and exits the grid on any one the four sides or else the robot follows the instructions on a certain number of locations once, and then the instructions on some number of locations repeatedly. The sample input below corresponds to the two grids above and illustrates the two forms of output. The word "step" is always immediately followed by "(s)" whether or not the number before it is 1.

Sample Input

3 6 5
NEESWE
WWWESS
SNWWWW
4 5 1
SESWE
EESNW
NWEEN
EWSEN
0 0 0

Sample Output

10 step(s) to exit
3 step(s) before a loop of 8 step(s)
这题题意很明确,机器人走了安指令走路,指令是一个二维数组;
1.多少补走出指定范围;
2.或者多少步之后会画一个多少步的圈
结合图理解,不需要多说了;
 
 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char s[][];
int i,j,m,n,a,p[][];
while(scanf("%d %d %d%*c",&m,&n,&a)&&m&&n&&a)
{
memset(p,,sizeof(p));
for(i=; i<m; i++)
{
for(j=; j<n; j++)
scanf("%c",&s[i][j]);
getchar();
}
j=a-;
i=;
p[i][j]=;
while()
{
if(s[i][j]=='N')
{
if(i-<)
{
printf("%d step(s) to exit\n",p[i][j]);
break;
}
else if(p[i-][j])
{
printf("%d step(s) before a loop of %d step(s)\n",p[i-][j]-,p[i][j]+-p[i-][j]);
break;
}
else
{
p[i-][j]=p[i][j]+;
i--;
continue;
}
}
else if(s[i][j]=='S')
{
if(i+==m)
{
printf("%d step(s) to exit\n",p[i][j]);
break;
}
else if(p[i+][j])
{
printf("%d step(s) before a loop of %d step(s)\n",p[i+][j]-,p[i][j]+-p[i+][j]);
break;
}
else
{
p[i+][j]=p[i][j]+;
i++;
continue;
}
}
else if(s[i][j]=='W')
{
if(j-<)
{
printf("%d step(s) to exit\n",p[i][j]);
break;
}
else if(p[i][j-])
{
printf("%d step(s) before a loop of %d step(s)\n",p[i][j-]-,p[i][j]+-p[i][j-]);
break;
}
else
{
p[i][j-]=p[i][j]+;
j--;
continue;
}
}
else if(s[i][j]=='E')
{
if(j+==n)
{
printf("%d step(s) to exit\n",p[i][j]);
break;
}
else if(p[i][j+])
{
printf("%d step(s) before a loop of %d step(s)\n",p[i][j+]-,p[i][j]+-p[i][j+]);
break;
}
else
{
p[i][j+]=p[i][j]+;
j++;
continue;
}
}
}
}
return ;
}

Robot Motion的更多相关文章

  1. poj1573 Robot Motion

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12507   Accepted: 6070 Des ...

  2. Robot Motion(imitate)

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11065   Accepted: 5378 Des ...

  3. 模拟 POJ 1573 Robot Motion

    题目地址:http://poj.org/problem?id=1573 /* 题意:给定地图和起始位置,robot(上下左右)一步一步去走,问走出地图的步数 如果是死循环,输出走进死循环之前的步数和死 ...

  4. POJ 1573 Robot Motion(BFS)

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12856   Accepted: 6240 Des ...

  5. Robot Motion 分类: POJ 2015-06-29 13:45 11人阅读 评论(0) 收藏

    Robot Motion Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 11262 Accepted: 5482 Descrip ...

  6. POJ 1573 Robot Motion

    Robot Motion Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12978   Accepted: 6290 Des ...

  7. Poj OpenJudge 百练 1573 Robot Motion

    1.Link: http://poj.org/problem?id=1573 http://bailian.openjudge.cn/practice/1573/ 2.Content: Robot M ...

  8. POJ1573——Robot Motion

    Robot Motion Description A robot has been programmed to follow the instructions in its path. Instruc ...

  9. hdoj 1035 Robot Motion

    Robot Motion Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  10. HDU-1035 Robot Motion

    http://acm.hdu.edu.cn/showproblem.php?pid=1035 Robot Motion Time Limit: 2000/1000 MS (Java/Others)   ...

随机推荐

  1. MySQL slave状态之Seconds_Behind_Master

    在MySQL的主从环境中,我们能够通过在slave上运行show slave status来查看slave的一些状态信息,当中有一个比較重要的參数Seconds_Behind_Master.那么你是否 ...

  2. SVNclient安装与使用

    Technorati 标签: SVN SVNclient安装与使用 1 下载最新版本号1.5.2 最新版本号:TortoiseSVN-1.5.2.13595-win32-svn-1.5.1.msi 下 ...

  3. struts2 json 定义全局Date格式

    使用struts2的json插件时,自己定义日期格式经常使用的方式是在get属性上加入@JSON注解,这个对于少量Date属性还能够,可是假设date字段多了,总不可能去给每一个date get方法加 ...

  4. Tomcat源码分析--转

    一.架构 下面谈谈我对Tomcat架构的理解 总体架构: 1.面向组件架构 2.基于JMX 3.事件侦听 1)面向组件架构 tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成 ...

  5. 使用CDN加载jQuery类库后备代码

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></ ...

  6. 表达式:使用API创建表达式树(6)

    一.ConstantExpression:表示具有常量值的表达式.因为表达式应用过程中,参数据多是 Expressions 类型,算是对常量值的一种包装吧. ConstantExpression使用比 ...

  7. 2017JAVA必读书籍

    1.深入理解Java虚拟机:JVM高级特性与最佳实践 2.Oracle查询优化改写技巧与案例 3.Effective Java 4.Spring3.x企业应用开发实战 5.Spring技术内幕:深入解 ...

  8. (九)打印机驱动设置—USB接口的设置

    佳博打印机代理商淘宝店https://shop107172033.taobao.com/index.htm?spm=2013.1.w5002-9520741823.2.Sqz8Pf 在此店购买的打印机 ...

  9. 关于ASP.NET控件方面的学习(恢复版)

    前段时间没有把学习中的遇到的问题和解决方法详细总结,今天整理整理.. 鉴于我们这个研究生论文管理系统是小组形式,所以说虽然我只负责数据库,但是其它部分也多少有些工作方面的涉及,最后感谢各位同学和老师的 ...

  10. Xcode 7真机测试详解

    1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk image 首先,准备好下面的设 ...