P2689 东南西北

题目描述

给出起点和终点的坐标及接下来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>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<cmath>
using namespace std;
#define LL long long
int E,W,S,N;
int x,y,xx,yy,n;
char c;
int main()
{
    scanf("%d%d%d%d",&x,&y,&xx,&yy);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        cin>>c;
        if(c==‘N‘)    N++;else
        if(c==‘S‘)    S++;else
        if(c==‘E‘)    E++;else
        if(c==‘W‘)    W++;
    }
    x=xx-x;
    y=yy-y;
    int t=0;
    if(x>0 && (x-E)>0)    t=1;
    if(x<0 && (W+x)<0)    t=1;

    if(y>0 &&  (x-N)>0) t=1;
    if(y<0 &&  S+y<0) t=1;
    if(!t)    cout<<(abs(x)+abs(y));
    else cout<<-1;
    return 0;
}

时间: 2024-10-15 07:17:22

P2689 东南西北的相关文章

芯片设计企业东南西北四大战区综述(2)

南部战区:由两省组成,分别是广东.福建.南部战区以广东为领头羊.广东的集成电路设计企业9成集中在深圳,深圳已成为国内集成电路产业的消费中心.集散中心和设计中心,良好的政策环境和地利条件将进一步促进深圳市集成电路发展:深圳之外广州.珠海也有不少集成电路设计企业入驻.福建的集成电路产业布局是以生产带动研发,厦门联芯.晋华存储的入驻将带动设计企业的发展. 西部战区:由四省组成,分别是陕西.四川.湖北.贵州.西部战区可谓是多点开花,陕西.四川.湖北.贵州四省都在积极布局集成电路产业.西安高新区.成都高新

Java自学序言

Java自学序言 亲爱的自己和各位读者朋友: 您们好! 这是作者本人自学Java编程开发的一系列文章,不具有一定的权威性,也算是自己一个人的学习笔记和总结,希望自己通过博客的形式将我自己的学习效率得到提高.如自学的稳重存在不足或错误的地方希望广大的博客朋友们多多指教.本人在此不胜感激! 学习Java是一件很痛苦的事儿,我自己要想不断的去挑战一下自己,把自己大学所学的Java知识能够巩固起来.不断的去改正自己开发中的不足之处.如何来学习Java?如何来更好的掌握Java开发语言?这些都是我们要不断

红色的幻想乡

题目背景 蕾米莉亚的红雾异变失败后,很不甘心. 题目描述 经过上次失败后,蕾米莉亚决定再次发动红雾异变,但为了防止被灵梦退治,她决定将红雾以奇怪的阵势释放. 我们将幻想乡看做是一个n*m的方格地区,一开始没有任何一个地区被红雾遮盖.蕾米莉亚每次站在某一个地区上,向东南西北四个方向各发出一条无限长的红雾,可以影响到整行/整列,但不会影响到她所站的那个地区.如果两阵红雾碰撞,则会因为密度过大而沉降消失.灵梦察觉到了这次异变,决定去解决它.但在解决之前,灵梦想要了解一片范围红雾的密度.可以简述为两种操

Android12_播放器_surfaceVIew_照相机_传感器

编程的时间与空间的概念,两者不可兼得(技术固定),时间换空间,空间换时间 sufaceView占用比较大的空间但是效率高 1,音乐播放器 MediaPlayer ①同步的 大致流程按下图走即可,播放最好写在服务里,因为要在后台播放 1.1 new出来的mediaplayer 默认处于Idie(空闲),reset()也可以让其处于初始状态 1.2 setDataSource()设置好文件之后就处于Initialized()初始化状态 1.3 可以通过setOnErrorListener方法查看播放

cocos2dx 制作单机麻将(一)

今天開始打算解说下cocos2dx下怎样制作国标麻将 前半部分先解说麻将的逻辑部分,由于都是代码,可能会比較枯燥无聊. 这部分讲完后,你也能够用其它游戏引擎来制作麻将 后半部分,就解说余下的cocos2dx部分, 由于要把这部分留到后面讲,主要是还在考虑用3d做还是用2d做. 到最后能够扩展AI部分的机器人 和 server模块 麻将逻辑1. 打乱麻将顺序(初始化牌堆) 国标麻将共同拥有144张牌 #define MAX_REPERTORY 144 先把全部的牌放入一个常量数组中保存 每种牌都是

[luogu P3801] 红色的幻想乡 [线段树][树状数组]

题目背景 蕾米莉亚的红雾异变失败后,很不甘心. 题目描述 经过上次失败后,蕾米莉亚决定再次发动红雾异变,但为了防止被灵梦退治,她决定将红雾以奇怪的阵势释放. 我们将幻想乡看做是一个n*m的方格地区,一开始没有任何一个地区被红雾遮盖.蕾米莉亚每次站在某一个地区上,向东南西北四个方向各发出一条无限长的红雾,可以影响到整行/整列,但不会影响到她所站的那个地区.如果两阵红雾碰撞,则会因为密度过大而沉降消失.灵梦察觉到了这次异变,决定去解决它.但在解决之前,灵梦想要了解一片范围红雾的密度.可以简述为两种操

喵哈哈村的魔法考试 Round #3 (Div.2) ABCDE

官方题解:http://www.cnblogs.com/qscqesze/p/6480284.html 哗啦啦村的刁难(1) 描述 哗啦啦村作为喵哈哈村的对头,于是他们准备给喵哈哈村一个好看. 哗啦啦村的头号长老--鱼先生,就提出了以下问题: 给你三个木棍,问你这三个木棍,是否能够组成一个非退化的三角形! 输入 第一行一个整数T,表示测试组数的个数.接下来T行,每行三个整数,a,b,c.表示哗啦啦村提供的三根木棍. 满足1<=T<=1001<=a,b,c<=5000 输出 如果可以

【Swing 2】布局管理器上

很苦逼的是,每次想记录一个小程序,发现,要给别人讲清楚,总是得分很多模块讲解. 所以今天来讲下Swing组件的三大布局管理器. 参考:<Head First Java>第十三章 1. BorderLayout--边界布局 2. FlowLayout--顺序布局 3. BoxLayout--不知道叫啥 1. BorderLayout(边界布局) 该管理器把背景分成东南西北中五大块,这是框架默认的布局管理器 1 package demo; 2 3 import javax.swing.*; 4 i

云计算竞争加剧,腾讯云三线齐发,争夺合作伙伴生态

11月2日,腾讯云宣布云服务器.云数据库.云存储和云安全四大核心产品全面调价,最高降幅低至3折起.这是腾讯云史上力度最大的一次价格调整,也是目前行业内幅度最大的一次调价.之前在10月,阿里云刚宣布了五折的降价. 回顾2016年的中国云计算市场,可谓高潮迭起.精彩纷呈,所有的云计算厂商都已经入局,大厂之间的价格战也不断,接下来就看未来两年究竟谁能成为生态型大平台,因为一旦形成平台生态的网络效应,谁就将成为最终赢家. 包括ISV独立软件开发商.SI系统集成商等在内的传统软件商是最重要的云生态合作伙伴