মান লিজিয়ে একটি দ্বীপ (island) আছে। সেখানে শুধু একটি দোকান আছে, যা সবসময় খোলা থাকে রবিবার ছাড়া। আমাদের নিচের ইনপুট মানগুলো আছে:
N(প্রতিদিন কেউ সর্বোচ্চ কতটুকু খাবার কিনতে পারে)।S(কত দিন বাঁচতে হবে)।M(প্রতিদিন বাঁচতে কতটুকু খাবার লাগবে)।
আজ সোমবার, এবং আমাদের পরের S দিন বাঁচতে হবে। আমাদের যাচাই করতে হবে আমরা বাঁচতে পারব কিনা, এবং যদি পারি তবে খাবার কিনতে হলে ন্যূনতম কত দিন দোকানে যেতে হবে।
যেমন, ইনপুট যদি S = 12, N = 24, M = 3 হয়, তবে আউটপুট হবে True এবং খাবার কিনতে হবে ন্যূনতম ২ দিন, কারণ আমরা ২৪ ইউনিট খাবার দিয়ে ৮ দিন (এই সোমবার থেকে পরের সোমবার) বাঁচতে পারি, তারপর আবার ১২ ইউনিট কিনে পরের ৪ দিন বাঁচব।
সমাধানের ধাপসমূহ
- যদি
(N * 6 < M * 7 and S > 6) or M > Nহয়, তবে:Falseরিটার্ন করুন
- অন্যথায়:
count := (M * S) / N-এর ভাগফল- যদি
(M * S)Nদ্বারা বিভাজ্য হয়, তবে:count := count + 1
Trueএবংcountরিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
def solve(S, N, M):
if ((N * 6) < (M * 7) and S > 6) or M > N:
return False
else:
count = (M * S) // N
if ((M * S) % N) != 0:
count += 1
return (True, count)
S = 12
N = 24
M = 3
print(solve(S, N, M))
ইনপুট
12, 24, 3
আউটপুট
(True, 2)