ধরা যাক তিন ধরণের কাপ অ্যারে p-এ এবং সーサー অ্যারে q-এ আছে, এবং m সংখ্যক শেলফ। আমাদের কাপ ও শেলফের সুন্দর ব্যবস্থা সম্ভব কিনা চেক করতে হবে।
নীতিমালা: ১) এক শেলফে কাপ ও সーサー উভয়েই থাকবে না। ২) এক শেলফে সর্বোচ্চ ৫টি কাপ। ৩) এক শেলফে সর্বোচ্চ ১০টি সーサー।
ইনপুট: p=[4,3,7], q=[5,9,10], m=11 → আউটপুট True (মোট কাপ=১৪, লাগে ৩ শেলফ; মোট সーサー=২৪, লাগে ৩ শেলফ; মোট ৬ শেলফ যা ১১-এর চেয়ে কম)।
সমাধানের ধাপসমূহ
- sum_p = sum(p), sum_q = sum(q)
- m_p = (sum_p + 4) // 5 (সিলিং ভাগ)
- m_q = (sum_q + 9) // 10
- যদি m_p + m_q <= m: return True else False
উদাহরণ
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))
ইনপুট
[4, 3, 7], [5, 9, 10], 11
আউটপুট
True