मान लीजिए हमारे पास एक संख्या n, आकार k1 और k2 की दो सरणी A और B हैं। अमल और बिमल एक दिलचस्प कार्ड गेम खेल रहे हैं। n कार्ड हैं, जिनकी संख्या 1 से n है। प्रारंभ में कार्ड उनके बीच वितरित किए जाते हैं। खेल इस प्रकार चलता है: प्रत्येक चरण में, प्रत्येक खिलाड़ी अपने कार्ड में से एक लेता है (जो भी वे चाहते हैं) और टेबल पर रखता है, ताकि दूसरा खिलाड़ी न देख सके कि उन्होंने कौन सा कार्ड चुना। फिर, दोनों कार्ड प्रकट होते हैं, और जिस खिलाड़ी का कार्ड नंबर बड़ा होता है, वह दोनों कार्ड अपने हाथ में ले लेता है। प्रत्येक कार्ड को कितनी भी बार खेला जा सकता है। A उन कार्डों को दर्शाता है जो अमल खेलता है, B उन कार्डों को दर्शाता है जो बिमल खेलता है। खिलाड़ी हार जाता है यदि उसके पास कोई कार्ड नहीं है। हमें अंतिम विजेता ढूंढना है।
उदाहरण के लिए, यदि इनपुट n = 5; A = [3, 2]; B = [5, 1, 4] है, तो आउटपुट Bimal होगा, क्योंकि शुरू में वे (3, 5) खेल रहे हैं, बिमल सभी कार्ड ले लेता है, फिर (3, 1) खेलते हैं अमल दोनों कार्ड लेता है, फिर यदि वे (3, 4) खेलते हैं तो बिमल सभी ले लेता है और फिर यदि अमल 1 खेलता है, तो बिमल कार्ड 5 से उन्हें ले लेगा इसलिए अमल के हाथ में कोई कार्ड नहीं रहेगा।
चरण
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
d := 0 e := 0 for initialize i := 0, when i < size of A, update (increase i by 1), do: f := A[i] if d < f, then: d := f for initialize i := 0, when i < size of A, update (increase i by 1),do: f := A[i] if e < f, then: e := f if d > e, then: return "Amal" Otherwise return "Bimal"
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
#includeusing namespace std; string solve(int n, vector A, vector B){ int d = 0; int e = 0; for(int i = 0; i e) return "Amal"; else return "Bimal"; } int main(){ int n = 5; vector A = {3, 2}; vector B = {5, 1, 4}; cout << solve(n, A, B) << endl; }
इनपुट
5, {3, 2}, {5, 1, 4}आउटपुट
Bimal