给出起点和终点的坐标及接下来T个时刻的风向(东南西北),每次可以选择顺风偏移1个单位或者停在原地。求到达终点的最少时间。
如果无法偏移至终点,输出“-1”。
输入格式:
第一行两个正整数x1,y1,表示小明所在位置。
第二行两个正整数x2,y2,表示小明想去的位置。
第三行一个整数T,表示T个时刻。
第四至第N+3行,每行一个字符,表示风向,即东南西北的英文单词的首字母。
输出格式:
最少走多少步。
样例1:向东走一步,向南走一步。
样例2、3:无法到达。
1<=T<=50
东:East
南:South
西:West
北:North
只要边输入边看这个方向是不是朝着终点。如果是,就动。否则就不动。
#include <iostream> using namespace std; int x,y,x1,y1,n,s=0; char a; int l=0; int main() { cin>>x>>y>>x1>>y1; cin>>n; if(x==x1&&y==y1){cout<<'0';return 0;} for(int i=1;i<=n;i++) { cin>>a; if(x1-x>0&&a=='E')x++,s++; else if(x1-x<0&&a=='W')x--,s++; if(y1-y>0&&a=='N')y++,s++; else if(y1-y<0&&a=='S')y--,s++; } if(x==x1&&y==y1)cout<<s; else cout<<"-1"; return 0; }