您的位置:首页 > 其它

hdu 1035

2014-04-29 17:31 274 查看
题目大意:机器人按程序在图中走,图的长和宽为n,m。机器人其实位置为第一行k处,在4个方向不停行走。走出图或碰到循环的话输出不同格式。

#include <stdio.h>
#include <string.h>

typedef struct
{
int step;
int jud;
}Node;

char f[110][110];
Node vis[110][110];
int n,m,k;

int main()
{
int i,j;
int x,y,time,flag,temp;

while(scanf("%d %d %d",&n,&m,&k)==3&&(n||m||k))
{
getchar();
memset(vis,0,sizeof(vis));
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%c",&f[i][j]);
}
getchar();
}
x=time=0,y=k-1,flag=0;
vis[x][y].step=0,vis[x][y].jud=1;
while(x>=0&&x<n&&y>=0&&y<m)
{
time++;
if(f[x][y]=='N')
x-=1;
else if(f[x][y]=='S')
x+=1;
else if(f[x][y]=='W')
y-=1;
else if(f[x][y]=='E')
y+=1;
if(vis[x][y].jud==1)
{
flag=1;
temp=vis[x][y].step;
break;
}
vis[x][y].jud=1;
vis[x][y].step=time;
}
if(flag==0)
printf("%d step(s) to exit\n",time);
else
printf("%d step(s) before a loop of %d step(s)\n",temp,time-temp);
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: