0
已解决
3657 懒惰的小鸟
经验值:1200 时间限制:1000毫秒 内存限制:128MB
题目描述 Description
**大草原上有一只极其懒惰的小鸟,他去某个地方从来不会自己使劲,它只愿意顺风而行,毕竟这样能省很多的力气,现在给你小鸟的起点和终点的坐标及接下来T个时刻的风向(东南西北),小鸟每次每次只会选择顺风偏移1个单位或者停在原地。你需要求到达终点的最少时间。
如果无法到达终点,输出“-1”。
输入描述 Input Description
第一行两个正整数x1,y1,表示小鸟所在位置。
第二行两个正整数x2,y2,表示小鸟想去的位置。
第三行一个整数T,表示T个时刻。
第四至第T+3行,每行一个字符,表示风向,即东南西北的英文单词的首字母。
输出描述 Output Description
一个整数,表示最少时间。如果无法到达终点,输出“-1”。
样例输入 Sample Input
1 1 2 2 5 E N W W N
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
样例解释:向东走一步,向北走一步。
1≤T≤100
东:East
南:South
西:West
北:North
#include <bits/stdc++.h>
using namespace std;
int x,y,q,w,n,cnt;
char z;
int main(){
cin>>x>>y>>q>>w>>n;
while(n--){
cin>>z;
if(q<x&&z=='W'){
cnt++;
q++;
}
if(q>x&&z=='E' ){
cnt++;
q--;
}
if(w<y&&z=='S'){
cnt++;
w++;
}
if(w>y&&z=='N'){
cnt++;
w--;
}
if(q==x && w==y) break;
}
if(!(q==x && w==y)) cout<<-1;
else cout<<cnt;
return 0;
}