问题标题: 酷町堂:3657 懒惰的小鸟

0
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;
}

 


0
0
0
0
我要回答