zoukankan      html  css  js  c++  java
  • 东南西北

    题目描述

    给出起点和终点的坐标及接下来T个时刻的风向(东南西北),每次可以选择顺风偏移1个单位或者停在原地。求到达终点的最少时间。

    如果无法偏移至终点,输出“-1”。

    输入输出格式

    输入格式:

    第一行两个正整数x1,y1,表示小明所在位置。

    第二行两个正整数x2,y2,表示小明想去的位置。

    第三行一个整数T,表示T个时刻。

    第四至第N+3行,每行一个字符,表示风向,即东南西北的英文单词的首字母。

    输出格式:

    最少走多少步。

    输入输出样例

    输入样例#1:
    1 1
    2 2
    5
    E
    N
    W
    W
    N
    输出样例#1:
    2
    输入样例#2:
    1 1
    2 2
    1
    W
    输出样例#2:
    -1
    输入样例#3:
    1 1
    2 2
    3
    W
    W
    W
    输出样例#3:
    -1

    说明

    样例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;
    }
  • 相关阅读:
    【多线程】工具类汇总
    【JVM】GC日志样例解读
    【Docker】
    XXS level5
    XXS level4
    XXS level3
    XXS level2
    SQLI DUMB SERIES-6
    SQLI DUMB SERIES-5
    XXS level1
  • 原文地址:https://www.cnblogs.com/thmyl/p/6048219.html
Copyright © 2011-2022 走看看