解题思路:
蠢方法:所有情况都写一个判断,但是很简单明了
注意事项:
无
参考代码:#include
#include
#include
int main(void)
{
int m,n,x,y,k,i,j;
int ant[102][102],count1=0;
char s;
memset(ant,0,sizeof(ant));
scanf("%d %d",&m,&n);
for(i=0; i
{
for(j=0; j
{
scanf("%d",&ant[i][j]);
}
}
scanf("%d %d %c %d",&x,&y,&s,&k);
while(1)
{
if(ant[x][y]==0&&s=='U')
{
ant[x][y] = 1;
s = 'L';
y-=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==0&&s=='L')
{
ant[x][y] = 1;
s = 'D';
x+=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==0&&s=='D')
{
ant[x][y] = 1;
s = 'R';
y+=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==0&&s=='R')
{
ant[x][y] = 1;
s = 'U';
x-=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==1&&s=='U')
{
ant[x][y] = 0;
s = 'R';
y+=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==1&&s=='L')
{
ant[x][y] = 0;
s = 'U';
x-=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==1&&s=='D')
{
ant[x][y] = 0;
s = 'L';
y-=1;
count1++;
if(count1==k)
break;
}
if(ant[x][y]==1&&s=='R')
{
ant[x][y] = 0;
s = 'D';
x+=1;
count1++;
if(count1==k)
break;
}
}
printf("%d %d\n",x,y);
return 0;
}