</pre><pre name="code" class="java">import java.util.Scanner;
public class Ant {
/**
* 兰顿蚂蚁
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();// 正方形格子的行数
int n = sc.nextInt();// 正方形格子的列数
int[][] a = new int[m][n];// 定义一个数组存储正方形格子
// 格子的初始化
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = sc.nextInt();
}
}
// 蚂蚁所在行号:x 及列号:y
int x = sc.nextInt();
int y = sc.nextInt();
// 接收表示方向的字符串
String s = sc.next();
// 将字符串转化为字符,因为只有一个字符,所以取下标为0的字符
char direction = s.charAt(0);
// 蚂蚁走的步数
int k = sc.nextInt();
while (k-- > 0) {
// 判断在白格还是黑格
// 若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;
if (a[x][y] == 1) {
a[x][y] = 0;
// 判断方向
switch (direction) {
case 'U':// 上时右转90度为右R
direction = 'R';
//判断是否越界,以下类似
if (y < n - 1) {
y++;
}
break;
case 'D':// 下时右转90度为左L
direction = 'L';
if (y > 0) {
y--;
}
break;
case 'L':// 左时右转90度为上U
direction = 'U';
if (x > 0) {
x--;
}
break;
case 'R':// 右时右转90度为下D
direction = 'D';
if (x < m - 1) {
x++;
}
break;
default:
break;
}
} else if (a[x][y] == 0) {
// 若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。
a[x][y] = 1;
switch (direction) {
case 'U':// 上时左转90度为左L
direction = 'L';
if (y > 0) {
y--;
}
break;
case 'D':// 下时左转90度为右R
direction = 'R';
if (y < n - 1) {
y++;
}
break;
case 'L':// 左时左转90度为下D
direction = 'D';
if (x < m - 1) {
x++;
}
break;
case 'R':// 右时左转90度为上U
direction = 'U';
if (x > 0) {
x--;
}
break;
default:
break;
}
}
}
System.out.println(x + " " + y);
}
}