#include<iostream>
#include<string>
#include<vector>
#include<stdlib.h>
using namespace std;
struct point
{
int x;
int y;
};
void getTemp(string s,vector<string> &temp)
{
size_t start = 0;
string delim(";");
size_t index = s.find_first_of(delim,start);
while(index != string::npos)
{
temp.push_back(s.substr(start,index-start));
//cout<<s.substr(start,index-start)<<endl;
start = index+1;
index = s.find_first_of(delim,start);
}
}
void ChangPoint(point &p,const string &s,int type)
{
int flag = 0;
if((s.size()==2&&isdigit(s[1])) ||(s.size()==3&&isdigit(s[1])&&isdigit(s[2])))
flag = 1;
if(flag)
{
int last = atoi(s.substr(1,s.size()-1).c_str());
switch(type)
{
case 1:
{
p.x -= last;
break;
}
case 2:
{
p.y -= last;
break;
}
case 3:
{
p.y += last;
break;
}
case 4:
{
p.x += last;
break;
}
default:
break;
}
}
}
void getLast(point &p,vector<string> &temp)
{
vector<string>::iterator iter = temp.begin();
for(;iter != temp.end();++iter)
{
string s = *iter;
if(s.size()>3||s.size()<=1)
continue;
else
{
char k = s[0];
switch(k)
{
case 'A':
{
ChangPoint(p,s,1);
break;
}
case 'S':
{
ChangPoint(p,s,2);
break;
}
case 'W':
{
ChangPoint(p,s,3);
break;
}
case 'D':
{
ChangPoint(p,s,4);
break;
}
default:
break;
}
}
}
cout<<p.x<<","<<p.y<<endl;
}
int main()
{
string s;
getline(cin,s);
//cout<<s;
vector<string> temp;
getTemp(s,temp);
point p;
p.x =0;
p.y =0;
getLast(p,temp);
return 0;
}
华为oj 坐标移动
最新推荐文章于 2016-06-07 14:48:02 发布