ধরুন একটি দ্বীপ আছে। ঐ স্থানে একটি মাত্র দোকান আছে, এই দোকানটি রবিবার ছাড়া সবসময় খোলা থাকে। ইনপুট হিসাবে আমাদের নিম্নলিখিত মান রয়েছে −
- N (সর্বোচ্চ সংখ্যক খাবার কেউ প্রতিদিন কিনতে পারে)।
- S (কাউকে বেঁচে থাকার জন্য কত দিন প্রয়োজন)।
- M (বেঁচে থাকার জন্য প্রতিদিন প্রয়োজনীয় খাবারের সংখ্যা)।
যদি এটি সোমবার হয়, এবং আমাদের পরবর্তী S সংখ্যার জন্য বেঁচে থাকতে হবে। আমাদের পরীক্ষা করতে হবে যে আমরা বেঁচে থাকতে পারি কি না, যদি আমরা ন্যূনতম কতগুলি দিন খুঁজে পেতে পারি যেগুলিতে আমাদের খাদ্য কিনতে হবে, যাতে আমরা পরবর্তী S সংখ্যক দিন বেঁচে থাকতে পারি।
সুতরাং, যদি ইনপুটটি S =12, N =24, M =3 এর মত হয়, তাহলে আউটপুট হবে True এবং ন্যূনতম 2 দিন যেগুলিতে আমাদের খাবার কিনতে হবে, কারণ আমরা 8 দিন বেঁচে থাকতে পারি (বর্তমান সোমবার থেকে পরের সোমবার পর্যন্ত) 24 ইউনিট খাবার ব্যবহার করে, তারপর পরবর্তী 4 দিনের জন্য আবার 12 ইউনিট কিনুন।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি (N * 6
6) বা M> N, তাহলে - মিথ্যে ফেরত দিন
- অন্যথায়,
- গণনা :=(M * S) / N এর ভাগফল
- যদি (M * S) N দ্বারা বিভাজ্য হয়, তাহলে
- গণনা :=গণনা + 1
- সত্য ফেরত দিন এবং গণনা করুন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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)