একটি সংখ্যা n, দুটি অ্যারে A (সাইজ k1) এবং B (সাইজ k2) দেওয়া আছে। অমল এবং বিমল একটি কার্ড গেম খেলছে। nটি কার্ড আছে ১ থেকে n নম্বর করা। শুরুতে কার্ডগুলো তাদের মধ্যে বন্টা আছে। প্রতিটি টার্নে প্রতিটি খেলাড়ি তাদের একটি কার্ড বেছে নেয় (যেটি চান) এবং টেবিলে রাখে, অন্যটি দেখে না। তারপর উভয় কার্ড রিভিল করা হয়, যার কার্ড বড় সে দুটোই নেয়। কার্ড যেকোনো সংখ্যকবার খেলা যাবে। A = অমলের কার্ড, B = বিমলের কার্ড। কার্ড না থাকলে हार। চূড়ান্ত বিজয়ী কে তা বের করতে হবে।
উদাহরণ
n=5, A=[3,2], B=[5,1,4] → আউটপুট: Bimal
ব্যাখ্যা: প্রথমে (3,5) খেললে বিমল সব নেয়, তারপর (3,1) খেললে অমল নেয়, এরপর (3,4) খেললে বিমল নেয়, অমল ১ খেললে বিমল ৫ দিয়ে নেয় — অমলের কার্ড শূন্য।
সমাধানের ধাপসমূহ
d := 0, e := 0
for i := 0 to A.size()-1:
f := A[i]
if d < f: d := f
for i := 0 to B.size()-1:
f := B[i]
if e < f: e := f
if d > e: return "Amal"
else: return "Bimal"
সি++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
string solve(int n, vector<int> A, vector<int> B) {
int d = 0, e = 0;
for (int i = 0; i < A.size(); i++) {
int f = A[i];
if (d < f) d = f;
}
for (int i = 0; i < B.size(); i++) {
int f = B[i];
if (e < f) e = f;
}
if (d > e) return "Amal";
else return "Bimal";
}
int main() {
int n = 5;
vector<int> A = {3, 2};
vector<int> B = {5, 1, 4};
cout << solve(n, A, B) << endl;
}
ইনপুট
5, {3, 2}, {5, 1, 4}
আউটপুট
Bimal