Description
在幻想乡,东风谷早苗是以高达控闻名的高中生宅巫女。某一天,早苗终于入手了最新款的钢达姆模型。作为最新的钢达姆,当然有了与以往不同的功能了,那就是它能够自动行走,厉害吧(好吧,我自重)。早苗的新模型可以按照输入的命令进行移动,命令包含’E’、’S’、’W’、’N’四种,分别对应四个不同的方向,依次为东、南、西、北。执行某个命令时,它会向着对应方向移动一个单位。作为新型机器人,自然不会只单单执行一个命令,它可以执行命令串。对于输入的命令串,每一秒它会按照命令行动一次。而执行完命令串最后一个命令后,会自动从头开始循环。在0 时刻时早苗将钢达姆放置在了(0,0)的位置,并且输入了命令串。她想要知道T 秒后钢达姆所在的位置坐标。
Input
第1 行:一个字符串,表示早苗输入的命令串,保证至少有1 个命令。
第2 行:一个正整数T。
第2 行:一个正整数T。
Output
第1 行:两个整数,表示T 秒时,钢达姆的坐标。
Sample Input
NSWWNSNEEWN 12
Sample Output
-1 3
Data Constraint
Hint
【数据范围】
对于60%的数据:T <= 500,000 且命令串长度<= 5,000
对于100%的数据:T <= 2,000,000,000 且命令串长度<= 5,000
【注意】
向东移动,坐标改变改变为(X+1,Y);
向南移动,坐标改变改变为(X,Y-1);
向西移动,坐标改变改变为(X-1,Y);
向北移动,坐标改变改变为(X,Y+1);
对于60%的数据:T <= 500,000 且命令串长度<= 5,000
对于100%的数据:T <= 2,000,000,000 且命令串长度<= 5,000
【注意】
向东移动,坐标改变改变为(X+1,Y);
向南移动,坐标改变改变为(X,Y-1);
向西移动,坐标改变改变为(X-1,Y);
向北移动,坐标改变改变为(X,Y+1);
分析
这题居然算TG T3难度?
#include <iostream> #include <cstdio> #include <cstring> using namespace std; typedef long long ll; struct Point { ll x,y; }d[5001],ans; char s[5001]; ll t,len,times; int main() { scanf("%s",&s); scanf("%lld",&t); len=strlen(s); for (int i=0;i<len;i++) switch (s[i]) { case 'N':{ d[i+1]=d[i]; d[i+1].y++; break; } case 'S':{ d[i+1]=d[i]; d[i+1].y--; break; } case 'W':{ d[i+1]=d[i]; d[i+1].x--; break; } case 'E':{ d[i+1]=d[i]; d[i+1].x++; break; } default:{ break; } } times=t/len; t%=len; ans.x=d[len].x*times+d[t].x; ans.y=d[len].y*times+d[t].y; printf("%lld %lld",ans.x,ans.y); }