ZR#1008
ZR#1008
解法:
直接预处理出来执行完一个完整的串可以到达的位置,然后算出重复的次数直接乘在坐标上,最后处理一下余下的部分就行了。
CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define LL long long
#define N 5050
char ch[N];
int pos1,pos2,T,cnt1,cnt2,x,y;
int main() {
scanf("%s",ch + 1);
scanf("%d",&T);
int len = strlen(ch + 1);
for(int i = 1 ; i <= len ; i++) {
if(ch[i] == 'N') y++;
if(ch[i] == 'S') y--;
if(ch[i] == 'W') x--;
if(ch[i] == 'E') x++;
}
//cout<<len<< " "<<T;
//if(len > T) {
cnt1 = len / T,cnt2 = len % T;
x = cnt1 * x,y = cnt1 * y;
for(int i = 1 ; i <= cnt2 ; i++) {
if(ch[i] == 'N') y++;
if(ch[i] == 'S') y--;
if(ch[i] == 'W') x--;
if(ch[i] == 'E') x++;
}
//}
printf("%d %d\n",x,y);
//system("pause");
return 0;
}
有些路你和某人一起走,就长得离谱,你和另外一些人走,就短得让人舍不得迈开脚步。