NOIP模拟赛 机器人
【题目描述】
早苗入手了最新的Gundam模型。最新款自然有着与以往不同的功能,那就是它能够自动行走,厉害吧。
早苗的新模型可以按照输入的命令进行移动,命令包括‘E’、‘S’、‘W’、‘N’四种,分别对应东南西北。执行某个命令时,它会向对应方向移动一个单位。作为新型机器人,它可以执行命令串。对于输入的命令串,每一秒它会按命令行动一次。执行完命令串的最后一个命令后,会自动从头开始循环。在0时刻时机器人位于(0,0)。求T秒后机器人所在位置坐标。
【输入格式】
第1行:一个字符串,表示早苗输入的命令串,保证至少有1个命令
第2行:一个正整数T
【输出格式】
2个整数,表示T秒时,机器人的坐标。
【样例输入】
NSWWNSNEEWN
12
【样例输出】
-1 3
【数据范围】
对于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);
小学数学找规律。。。弱爆了
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 char s[5005]; 6 long long T,x=0,y=0,xx=0,yy=0; 7 int n; 8 9 int main() 10 { 11 cin>>s; 12 cin>>T; 13 n=strlen(s); 14 for(int i=0;i<n;i++) 15 { 16 switch(s[i]) 17 { 18 case 'E': 19 xx++; 20 break; 21 case 'S': 22 yy--; 23 break; 24 case 'W': 25 xx--; 26 break; 27 case 'N': 28 yy++; 29 break; 30 } 31 } 32 x=T/n*xx; 33 y=T/n*yy; 34 T%=n; 35 for(int i=0;i<T;i++) 36 { 37 switch(s[i]) 38 { 39 case 'E': 40 x++; 41 break; 42 case 'S': 43 y--; 44 break; 45 case 'W': 46 x--; 47 break; 48 case 'N': 49 y++; 50 break; 51 } 52 } 53 cout<<x<<" "<<y<<endl; 54 return 0; 55 }