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 分钟前
【小宁的学习日记2 C语言】C语言判断
c语言·学习·算法
2401_841495641 小时前
【数据结构】基于Prim算法的最小生成树
java·数据结构·c++·python·算法·最小生成树·prim
追烽少年x2 小时前
Qt中使用C++日志库
c++·qt
祈祷苍天赐我java之术3 小时前
解析常见的限流算法
java·数据结构·算法
mit6.8244 小时前
dp|拆分控制
c++
Shinom1ya_4 小时前
算法 day 34
算法
啊董dong4 小时前
课后作业-2025-10-26
c++·算法·noi
liu****4 小时前
1.模拟算法
开发语言·c++·算法·1024程序员节
小猪咪piggy4 小时前
【算法】day10 分治
数据结构·算法·排序算法
又是忙碌的一天4 小时前
算法学习 13
数据结构·学习·算法