【问题描述】
在N×M的网格中,有一个机器人,它的初始位置为x,y。
# 左上角为(1,1),右下角为(N,M)。
机器人可以接收上/下/左/右移动某个x个单位的指令。
如:L5表示向左移动5个单位,R3表示向右移动3个单位,U2表示向上移动2个单位,D4表示向下移动4个单位。
移动单位的取值范围在1−9之内。
注意,一旦移动到网格的边界,就无法继续沿着这个方向移动。
现给定一串指令序列,输出机器人的坐标。
【输入描述】
第一行,4个数字,分别表示N,M,x,y。
第二行,一个由字母L,R,U,D和数字1−9组成的字符串。
【输出描述】
两个数字,空格隔开,表示机器人的坐标。
用例输入1
10 10 5 3 L2R3U3D1
用例输出1
3 4
用例输入2
5 5 1 1 L3R3U3D3
用例输出2
4 4
提示
对于100%的数据,1≤N,M,x,y≤100,字符串长度≤1000
#include<iostream> #include<string> using namespace std; int main() { int n, m, x, y; string s; cin >> n >> m >> x >> y >> s; for(int i=0; i<s.length(); i++) { if(s[i] == 'L') { y -= s[i+1] - 48; if(y<1) y = 1; } else if(s[i] == 'R') { y += s[i+1] - 48; if(y>m) y = m; } else if(s[i] == 'U') { x -= s[i+1] - 48; if(x<1) x = 1; } else if(s[i] == 'D') { x += s[i+1] - 48; if(x>n) x = n; } } cout << x << " " << y; return 0; }
标签:输出,int,机器人,移动机器人,单位,用例,移动 From: https://www.cnblogs.com/dks0313/p/17284224.html