मान लीजिए कि हमारे पास क्रमशः k1 और k2 आकार की एक संख्या n, दो सरणियाँ A और B हैं। अमल और बिमलारे दिलचस्प कार्ड गेम खेल रहे हैं। n कार्ड हैं, जिनकी संख्या 1 से n है। प्रारंभ में कार्ड उनके बीच वितरित किए जाते हैं। खेल इस प्रकार है:प्रत्येक मोड़ पर, प्रत्येक खिलाड़ी अपना एक कार्ड (जो भी वे चाहते हैं) लेता है और टेबल पर रखता है, ताकि दूसरा खिलाड़ी यह न देखे कि उन्होंने कौन सा कार्ड चुना है। फिर, दोनों कार्ड प्रकट होते हैं, और खिलाड़ी, जिसका कार्ड नंबर बड़ा होता है, दोनों कार्ड अपने हाथ में लेता है। प्रत्येक कार्ड को कितनी भी बार खेला जा सकता है। अमल द्वारा खेले जाने वाले पत्तों का प्रतिनिधित्व करता है, बी उन पत्तों का प्रतिनिधित्व करता है जो बिमल खेलते हैं। यदि उसके पास कोई कार्ड नहीं है तो खिलाड़ी हार जाता है। हमें अंतिम विजेता को ढूंढना है।
तो, अगर इनपुट n =5 की तरह है; ए =[3, 2]; बी =[5, 1, 4], तो आउटपुट बिमल होगा, क्योंकि शुरू में वे खेल रहे हैं (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"
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include<bits/stdc++.h> using namespace std; string solve(int n, vector<int> A, vector<int> B){ int d = 0; int e = 0; for(int i = 0; i<A.size(); i++){ int f = A[i]; if (d < f) d = f; } for(int i = 0; i<A.size(); i++){ int f = A[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