মান লেট n সারি এবং m কলামের একটি গ্রিড আছে। Amal এবং Bimal সেটা גרিডে একটি গেম খেলছে। গেমের নিয়ম নিচের মতো −
Amal সাদা লোটাস টাইলটি 탑 সারির কোথাও রাখে এবং Bimal ক্যাটারপিলার টাইলটি বটম সারির কোথাও রাখে। Amal গেম শুরু করে এবং তারা বारी-बারিতে খেলে। Amal তার টাইলকে কারেন্ট সেলের ৮টি এডজেসেন্ট সেলের যেকোনোতে মুভ করতে পারে গ্রিডের ভেতরে, কিন্তু Bimal-এর ক্যাটারপিলার টাইল শুধু বাম বা ডান মুভ করতে পারে গ্রিডের ভেতরে, অথবা একই পজিশনে থাকতে পারে। Amal-এর লক্ষ্য Bimal কে কমপক্ষে মুভ দিয়ে ধরা, যখন Bimal (ক্যাটারপিলার টাইলসহ) যতদিন সম্ভব টিকे থাকতে চায়। যদি তারা র্যান্ডমলি দুটি কলাম সিলেক্ট করে তাদের লোটাস এবং ক্যাটারপিলার রাখতে, তবে আমাদের Amal এই গেম জেতার জন্য প্রত্যাশিত মুভ সংখ্যা বের করতে হবে।
তাহলে, যদি ইনপুট হয় n = 5 m = 7, তবে আউটপুট হবে 4.571428571428571।
এটি সমাধান করতে, আমরা নিচের পদক্ষেপগুলো অনুসরণ করব −
- r := 0
- l 0 থেকে m - 1 পর্যন্ত রেঞ্জে, করুন
- temp := n - 1.0
- যদি l >= n, তবে
- temp := temp + (l - n + 1) * ((l - 1) / m)
- যদি l < m - n, তবে
- temp := temp + (m - n - l) * ((m - l - 2) / m)
- r := r + temp / m
- r রিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন −
def solve(n, m): r = 0 for l in range(m): temp = n - 1.0 if l >= n: temp += (l - n + 1) * ((l - 1) / m) if l < m - n: temp += (m - n - l) * ((m - l - 2) / m) r += temp / m return r n = 5 m = 7 print(solve(n, m))
ইনপুট
5, 7
আউটপুট
4.571428571428571