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 個字符為 U
、D
、L
、R
其中之一,表示想知道方向上/下/左/右有沒有人。
輸出格式
輸出共 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++代碼實現
#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;
}