week3-[分支嵌套]方阵

week3-[分支嵌套]方阵

题目描述

有 n×mn\times mn×m 个人站成 nnn 行 mmm 列的方阵。我们想知道第 xxx 行 yyy 列的人的某个方向有没有人。

输入格式

输入共 222 行。

第 111 行输入 444 个正整数 n,m,x,yn,m,x,yn,m,x,y。

第 222 行输入 111 个字符为 UDLR 其中之一,表示想知道方向上/下/左/右有没有人。

输出格式

输出共 111 行表示答案。如果有人则输出 YE5,否则输出 N0

样例 #1

样例输入 #1

复制代码
3 3 1 1
L

样例输出 #1

复制代码
N0

样例 #2

样例输入 #2

复制代码
3 4 2 4
D

样例输出 #2

复制代码
YE5

提示

数据范围

对于所有数据,1≤n,m≤1001\leq n,m\leq 1001≤n,m≤100,1≤x≤n1\leq x \leq n1≤x≤n,1≤y≤m1 \leq y \leq m1≤y≤m。

🔎 题意理解

  • 方阵有 n 行 m 列,每个格子里有一个人。
  • 我们关注的是 第 x 行 y 列的人。
  • 输入一个方向(U=上,D=下,L=左,R=右)。
  • 需要判断在这个方向上是否还能看到人(即对应方向上是否存在格子)。

🧩 思路分析

  • 向上 (U) :如果 x > 1,说明上面还有人 → 输出 YE5;否则 N0
  • 向下 (D) :如果 x < n,说明下面还有人 → 输出 YE5;否则 N0
  • 向左 (L) :如果 y > 1,说明左边还有人 → 输出 YE5;否则 N0
  • 向右 ® :如果 y < m,说明右边还有人 → 输出 YE5;否则 N0

🖥️ C++代码实现

c++ 复制代码
#include <iostream>
using namespace std;

int main() {
    int n, m, x, y;
    char dir;
    cin >> n >> m >> x >> y;
    cin >> dir;

    if (dir == 'U') {
        if (x > 1) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'D') {
        if (x < n) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'L') {
        if (y > 1) cout << "YE5";
        else cout << "N0";
    } else if (dir == 'R') {
        if (y < m) cout << "YE5";
        else cout << "N0";
    }

    return 0;
}
相关推荐
初願致夕霞15 分钟前
Linux_进程
linux·c++
Thera7771 小时前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++
Wei&Yan1 小时前
数据结构——顺序表(静/动态代码实现)
数据结构·c++·算法·visual studio code
wregjru1 小时前
【QT】4.QWidget控件(2)
c++
浅念-1 小时前
C++入门(2)
开发语言·c++·经验分享·笔记·学习
小羊不会打字1 小时前
CANN 生态中的跨框架兼容桥梁:`onnx-adapter` 项目实现无缝模型迁移
c++·深度学习
团子的二进制世界1 小时前
G1垃圾收集器是如何工作的?
java·jvm·算法
Max_uuc1 小时前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
吃杠碰小鸡1 小时前
高中数学-数列-导数证明
前端·数学·算法
故事不长丨1 小时前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#