ধরুন একটি জুতার দোকানে একটি অ্যারেতে বিভিন্ন মাপের বিভিন্ন জুতা রয়েছে যাকে সাইজ বলা হয় এবং m গ্রাহকদের জন্য জোড়ার আরেকটি তালিকা দেওয়া হয়েছে যাকে চাহিদা বলা হয়, যেখানে চাহিদা [i]-এ থাকে (জুতার_সাইজ, অর্থ) তাই একজন গ্রাহকের চাহিদা আছে একটি জুতার চাহিদা যার আকার shoe_size এবং তিনি প্রদত্ত অর্থ প্রদান করতে পারেন। এই জুতা বিক্রি করে দোকানদার কত টাকা আয় করতে পারে তা আমাদের খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুট জুতার মত হয় =[2,3,4,5,6,8,7,6,5,18] চাহিদা =[(6,55), (6,45), (6,55) , (4,40), (18,60), (10,50)], তাহলে আউটপুট 200 হবে কারণ
-
প্রথমে 55 টাকায় 6 সাইজের জুতা কিনবেন
-
দ্বিতীয়টি 45 টাকায় 6 সাইজের জুতা কিনবে
-
স্টকে 6 সাইজের কোনো জুতা নেই
-
চতুর্থটি 40
দামে 4 সাইজের জুতা কিনবে -
পঞ্চমটি 60
দামে 18 সাইজের জুতা কিনবে -
ষষ্ঠটি জুতা পাবে না কারণ 10 সাইজের জুতা নেই
মোট আয় 55 + 45 + 40 + 60 =200।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- n :=চাহিদার আকার
- আকার :=আকারের উপর ভিত্তি করে জুতার ফ্রিকোয়েন্সি সম্বলিত একটি মানচিত্র
- আয় :=0
- আমি 0 থেকে n - 1 রেঞ্জের জন্য, কর
- (sz, মূল্য) :=চাহিদা[i]
- যদি sz আকারের জুতা আকারে উপস্থিত থাকে, তাহলে
- আকার[sz] :=আকার[sz] - 1
- আয়:=উপার্জন + মূল্য
- রিটার্ন উপার্জন
উদাহরণ
আরও ভালোভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি
from collections import Counter def solve(shoes, demand): n = len(demand) sizes = Counter(shoes) earn = 0 for i in range(n): sz, price = demand[i] if sizes[sz]: sizes[sz] -= 1 earn += price return earn shoes = [2,3,4,5,6,8,7,6,5,18] demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)] print(solve(shoes, demand))
ইনপুট
[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]
আউটপুট
200