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 }

 

posted @ 2016-10-19 21:00  InWILL  阅读(472)  评论(0编辑  收藏  举报