Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra sắp xếp cốc và đĩa gọn gàng trong Python

Cho ba loại cốc trong mảng p, đĩa trong mảng q, và m giá. Kiểm tra có thể sắp xếp gọn gàng không.

Điều kiện gọn gàng: 1) Một giá không chứa cả cốc và đĩa. 2) Một giá tối đa 5 cốc. 3) Một giá tối đa 10 đĩa.

Ví dụ: p=[4,3,7], q=[5,9,10], m=11 → Tổng cốc=14 cần 3 giá, tổng đĩa=24 cần 3 giá, tổng cần 6 ≤ 11 → True.

Thuật toán

  1. Tính tổng cốc sum_p, tổng đĩa sum_q.
  2. Số giá cho cốc: m_p = ceil(sum_p / 5) = (sum_p + 4) // 5.
  3. Số giá cho đĩa: m_q = ceil(sum_q / 10) = (sum_q + 9) // 10.
  4. Trả về True nếu m_p + m_q <= m.

Ví dụ code

def is_valid(p, q, m):
    sum_p = sum(p)
    sum_q = sum(q)
    m_p = (sum_p + 5 - 1) // 5
    m_q = (sum_q + 10 - 1) // 10
    return m_p + m_q <= m

p = [4, 3, 7]
q = [5, 9, 10]
m = 11
print(is_valid(p, q, m))

Input

[4, 3, 7], [5, 9, 10], 11

Output

True