ধরুন আমাদের দুটি সংখ্যা আছে n এবং k। অমল আর বিমল একটা খেলা খেলছে। নিয়ম সহজ. অমল একটি সারিতে n লাঠি আঁকে। এর পরে খেলোয়াড়রা প্রতিটি পালা করে বাম বা ডান দিক থেকে ঠিক k স্টিকগুলি ক্রস আউট করে। অমল খেলা শুরু করে। কিছু ঘুরানোর আগে কাগজে k-এর চেয়ে কম স্টিক থাকলে, খেলা শেষ হয়। অমল জিতবে যদি সে বিমলের চেয়ে কঠোরভাবে বেশি পদক্ষেপ নেয়। আমাদের খুঁজে বের করতে হবে কে বিজয়ী হবে।
সুতরাং, যদি ইনপুট n =10 এর মত হয়; k =4, তাহলে আউটপুট হবে বিমল। কারণ অমল 4টি লাঠি অতিক্রম করে, তারপর বিমল 4টি লাঠি অতিক্রম করে এবং তার পরে কেবল 2টি লাঠি বাকি থাকে। অমল নড়াচড়া করতে পারে না। খেলোয়াড়রা সমান সংখ্যক চাল তৈরি করে, তাই অমল জিততে পারে না।
পদক্ষেপ
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
if floor of (n / k) is even, then: return "Amal" return "Bimal"
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
#include <bits/stdc++.h> using namespace std; string solve(int n, int k) { if ((n / k) % 2 != 0) { return "Amal"; } return "Bimal"; } int main() { int n = 10; int k = 4; cout << solve(n, k) << endl; }
ইনপুট
10, 4
আউটপুট
Bimal