描述
哗啦啦村作为喵哈哈村的对头,于是他们准备给喵哈哈村一个好看。
哗啦啦村的二号长老——咸先生,就提出了以下问题:
咸先生提供了一个机器人。这个机器人可以按照输入的命令进行移动,命令包括‘E’、‘S’、‘W’、‘N’四种,分别对应东南西北。执行某个命令时,它会向对应方向移动一个单位。作为新型机器人,它可以执行命令串。对于输入的命令串,每一秒它会按命令行动一次。执行完命令串的最后一个命令后,会自动从头开始循环。在0时刻时机器人位于(0,0)。求T秒后机器人所在位置坐标。
输入
第1行:一个字符串,表示早苗输入的命令串,保证至少有1个命令
第2行:一个正整数T
T<=2,000,000,000 且命令串长度<=5,000
输出
2个整数,表示T秒时,机器人的坐标。
样例输入1
NSWWNSNEEWN
12
样例输出1
-1 3
A :
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
int n;
cin >> n;
int len = s.length();
int t = n / len; // 从头开始循环次数
int r = n % len; // 剩下最后一次循环
int x = 0, y = 0;
//for (int i = 0; i < t; ++i) {
for (int j = 0; j < len; ++j) {
if(s[j] == 'E') ++x;
else if(s[j] == 'S') --y;
else if(s[j] == 'W') --x;
if(s[j] == 'N') ++y;
}
//}
x *= t;
y *= t;
for (int k = 0; k < r; ++k) {
if(s[k] == 'E') ++x;
if(s[k] == 'S') --y;
if(s[k] == 'W') --x;
if(s[k] == 'N') ++y;
}
cout << x << " " << y << endl;
return 0;
}