मान लीजिए हमारे पास एक बॉल फैक्ट्री है जहां हमारे पास l से r (दोनों समावेशी) तक नंबर की n गेंदें हैं और 1 से अनंत तक नंबर वाले अनंत बॉक्स हैं। इसलिए यदि हम प्रत्येक गेंद को उस बॉक्स में डालते हैं जिसका नंबर गेंद के नंबर के अंकों के योग के समान है। (उदाहरण के लिए, गेंद नंबर 123 को बॉक्स नंबर 1+2+3=6 में डाला जाएगा)। इसलिए यदि हमारे पास दो मान l और r हैं, तो हमें सबसे अधिक गेंदों वाले बॉक्स में गेंदों की संख्या ढूंढनी है।
इसलिए, यदि इनपुट है: l = 15, r = 25, तो आउटपुट 2 होगा क्योंकि:
- गेंद नंबर 15 -> 1+5 = 6 (बॉक्स 6)
- गेंद नंबर 16 -> 1+6 = 7 (बॉक्स 7)
- गेंद नंबर 17 -> 1+7 = 8 (बॉक्स 8)
- गेंद नंबर 18 -> 1+8 = 9 (बॉक्स 9)
- गेंद नंबर 19 -> 1+9 = 10 (बॉक्स 10)
- गेंद नंबर 20 -> 2+0 = 2 (बॉक्स 2)
- गेंद नंबर 21 -> 2+1 = 3 (बॉक्स 3)
- गेंद नंबर 22 -> 2+2 = 4 (बॉक्स 4)
- गेंद नंबर 23 -> 2+3 = 5 (बॉक्स 5)
- गेंद नंबर 24 -> 2+4 = 6 (बॉक्स 6)
- गेंद नंबर 25 -> 2+5 = 7 (बॉक्स 7)
इसलिए बॉक्स 6 और 7 में अधिकतम गेंदें हैं, इसलिए उत्तर 2 है।
हल करने के चरण
- dict := एक नया मैप
- i को l से r तक के लिए:
- total := 0
- i के प्रत्येक अंक j के लिए: total := total + j
- यदि total, dict में मौजूद नहीं है, तो dict[total] := 0
- dict[total] := dict[total] + 1
- dict में सभी कुंजियों के लिए सभी मानों का अधिकतम वापस करें
उदाहरण (Python)
def solve(l, r):
dict = {}
for i in range(l, r+1):
total = 0
for j in str(i):
total += int(j)
if total not in dict:
dict[total] = 0
dict[total] += 1
return max([dict[i] for i in dict])
l = 15
r = 25
print(solve(l, r))
इनपुट
15, 25
आउटपुट
2