From 2428bfe25e9ee32014344de3a3c171ebd02dd147 Mon Sep 17 00:00:00 2001 From: vzsky Date: Thu, 7 Aug 2025 13:47:52 +0700 Subject: [PATCH 1/2] Add 0022 --- 0022.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 0022.md diff --git a/0022.md b/0022.md new file mode 100644 index 0000000..cda06ad --- /dev/null +++ b/0022.md @@ -0,0 +1,25 @@ +สังเกตว่าถ้า $N$ เป็นเลขคู่ ผลลัพธ์จะมี $N-1$ คอลัมน์แต่ถ้า $N$ เป็นเลขคี่ผลลัพธ์จะมี $N$ คอลัมน์ ให้ $M$ แทนจำนวนคอลัมน์ และให้แถวบนสุดเป็นแถวที่ $0$ จนถึงแถวล่างสุดเป็นแถวที่ $N-1$ และให้คอลัมน์ซ้ายสุดเป็นคอลัมน์ 0 จนถึงคอลัมน์ขวาสุดเป็นคอลัมน์ที่ $M-1$ + +ผลลัพธ์ที่เราต้องการประกอบไปด้วยเส้นตรง 4 เส้น เรียกเส้นบนซ้ายว่าเส้นที่ 1 บนขวาเป็นเส้นที่ 2 ล่างซ้ายเป็นเส้นที่ 3 และ ล่างขวาเป็นเส้นที่ 4 เมื่อให้ $i$ แทนเลขแถว และ $j$ แทนเลขคอลัมน์ แต่ละเส้นสามารถใช้สมการมาอธิบายได้ดังนี้ +1. $i + j = \lfloor \frac{N-1}2 \rfloor$ +2. $j - i = \lfloor \frac{N-1}2 \rfloor$ +3. $i - j = \lfloor \frac N2 \rfloor$ +4. $i + j = \lfloor \frac{3N-3}2 \rfloor$ + +```cpp +#include +using namespace std; + +int main() { + int N; cin >> N; + int M = N - !(N&1); + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + if (i+j == (N-1)/2 or i+j == (3*N-3)/2 or j-i == (N-1)/2 or i-j == N/2) cout << '*'; + else cout << '-'; + } cout << endl; + } + return 0; +} + +``` From c65ae2eb13b31a3039ee0d1d384354c2e7a5721c Mon Sep 17 00:00:00 2001 From: vzsky Date: Thu, 7 Aug 2025 14:00:15 +0700 Subject: [PATCH 2/2] move 0022 to md/ --- 0022.md => md/0022.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 0022.md => md/0022.md (100%) diff --git a/0022.md b/md/0022.md similarity index 100% rename from 0022.md rename to md/0022.md