Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่าตัดสี่เหลี่ยมจัตุรัส (มีช่องสี) เป็นสองส่วนสมมาตรได้หรือไม่ ใน Python


ปัญหา

สี่เหลี่ยมขนาด n x n แบ่งเป็น n² ช่องเล็ก มี 1 ช่องสี ตัดสี่เหลี่ยมใหญ่เป็น 2 ส่วนที่เป็น mirror image กัน เส้นตัดห้ามผ่านช่องสี ตรวจสอบว่าตัดได้หรือไม่

เงื่อนไข

เส้นตัดสมมาตรต้องผ่านศูนย์กลาง ช่องสีต้องไม่อยู่บนเส้นตัด
สำหรับ n คู่: เส้นตัดอยู่ระหว่างแถว/คอลัมน์ n/2 และ n/2-1
ช่องสีอยู่ที่ (r, c) (0-indexed) → ตัดไม่ได้ถ้า r ∈ {n/2-1, n/2} และ c ∈ {n/2-1, n/2}

ตัวอย่าง

n = 50, colored = (25, 25) → mid = 25, ช่องสีอยู่ที่ (25,25) → อยู่บนเส้นตัด → "Cutting is not possible"

โค้ดตัวอย่าง

def solve(n, r, c):
    mid = n // 2
    # สำหรับ n คู่: เส้นตัดอยู่ระหว่าง mid-1 และ mid
    # ช่องที่อยู่บนเส้นตัดคือ (mid-1, mid-1), (mid-1, mid), (mid, mid-1), (mid, mid)
    if (r == mid-1 or r == mid) and (c == mid-1 or c == mid):
        return "Cutting is not possible"
    return "Cutting is possible"

print(solve(50, 25, 25))  # Cutting is not possible

อินพุต / เอาต์พุต

Input:  50, 25, 25
Output: Cutting is not possible