比赛 东方幻想乡 S1 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 东风谷早苗 最终得分 100
用户昵称 Makazeu 运行时间 0.007 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2012-08-07 20:10:13
显示代码纯文本
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#define East 0
#define West 1
#define South 2
#define North 3
using namespace std;
string str;
int N,len,X=0,Y=0;
int step[4][2]={{1,0},{-1,0},{0,-1},{0,1}};
int HX,HY;
int main()
{
    freopen("android.in","r",stdin);
    freopen("android.out","w",stdout);
    std::ios::sync_with_stdio(false);
    cin>>str>>N;
    len=str.length();
    for(int i=1;i<=len;i++)
    {
        switch(str[i-1])
        {
            case'E':X+=step[East][0],Y+=step[East][1];break;
            case'W':X+=step[West][0],Y+=step[West][1];break;
            case'S':X+=step[South][0],Y+=step[South][1];break;
            case'N':X+=step[North][0],Y+=step[North][1];break;
        }
    }
    HX=X,HY=Y;
    X=(N/len)*HX;
    Y=(N/len)*HY;
    N%=len;
    for(int i=1;i<=N;i++)
    {
        switch(str[i-1])
        {
            case'E':X+=step[East][0],Y+=step[East][1];break;
            case'W':X+=step[West][0],Y+=step[West][1];break;
            case'S':X+=step[South][0],Y+=step[South][1];break;
            case'N':X+=step[North][0],Y+=step[North][1];break;
        }
    }
    printf("%d %d\n",X,Y);
    return 0;
}