import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class LanDunAnt {
static int x, y, count;
static char[] dir = { 'L', 'U', 'R', 'D', 'L' };// 向右转的顺序
static int[][] map;
static char fx;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String order[] = br.readLine().split(" ");
int n = Integer.parseInt(order[0]), m = Integer.parseInt(order[1]);
map = new int[n][m];
for (int i = 0; i < map.length; i++) {
String in[] = br.readLine().split(" ");
for (int j = 0; j < map[i].length; j++)
map[i][j] = Integer.parseInt(in[j]);
}
String control[] = br.readLine().split(" ");
x = Integer.parseInt(control[0]);
y = Integer.parseInt(control[1]);
fx = control[2].charAt(0);
count = Integer.parseInt(control[3]);
while (count > 0) {
// 左转,那就把dir数组倒过来
if (map[x][y] == 0 && count > 0) {
for (int i = dir.length - 1; i >= 0; i--)
if (fx == dir[i]) {
fx = dir[i - 1];
break;
}
map[x][y] = 1;
if (fx == 'L' || fx == 'R')
y = fx == 'L' ? y - 1 : y + 1;
else
x = fx == 'U' ? x - 1 : x + 1;
count--;
}
// 右转
if (map[x][y] == 1 && count > 0) {
for (int i = 0; i <= dir.length; i++)
if (fx == dir[i]) {
fx = dir[i + 1];
break;
}
map[x][y] = 0;
if (fx == 'L' || fx == 'R')
y = fx == 'L' ? y - 1 : y + 1;
else
x = fx == 'U' ? x - 1 : x + 1;
count--;
}
}
System.out.println(x + " " + y);
}
}
历届往题 兰顿蚂蚁
最新推荐文章于 2020-11-13 20:57:17 发布