题解
- 先弄出循环节里的x、y,然后乘上循环节的循环次数
- 最后再暴力做剩下的
代码
1 #include <cstdio>
2 #include <cstring>
3 using namespace std;
4 long long t,ansx,ansy,x,y,k;
5 char s[5010];
6 int main()
7 {
8 scanf("%s%lld",s+1,&t);
9 int len=strlen(s+1);
10 for (int i=1;i<=len;i++)
11 if (s[i]=='N') y++; else if (s[i]=='S') y--; else if (s[i]=='W') x--; else if (s[i]=='E') x++;
12 k=t/len,ansx=x*k,ansy=y*k;
13 for (int i=1;i<=t%len;i++)
14 if (s[i]=='N') ansy++; else if (s[i]=='S') ansy--; else if (s[i]=='W') ansx--; else if (s[i]=='E') ansx++;
15 printf("%lld %lld",ansx,ansy);
16 }