Chocolate Distribution Problem || Program 15 || Competitive Coding || Learning Monkey ||
Chocolate Distribution Problem
In this class, We discuss Chocolate Distribution Problem.
The reader can take a full competitive coding course. Click Here.
Question:
Given N chocolate packets.
Each packet contains x number of chocolates. x value given in a list.
Example:
N = 8
Each packet contains x number of chocolates [ 3, 4, 1, 9, 56, 7, 9, 12]
The m value is given.
M = 5, i.e. five kids are present.
Each kid is given one chocolate packet in such a way that the difference between the packet with maximum chocolates and the packet with minimum chocolates is minimum.
Output:
The kids are assigned with [3, 4, 9, 7, 9]
9-3 = 6
The difference is 6.
The program should output 6
The above distribution will give the minimum difference = 6
Time complexity = O(nlogn)
Space complexity = O(1)
Solution:
One way:
Pick all the combinations of five packets from the given list.
But picking all the five combinations needs time complexity of O(n^5)
Second way:
Are all the five number combinations required in our example? No.
We can eliminate a few five-number combinations.
Which combinations can be eliminated?
Arrange the elements in ascending order. And pick the element's five numbers set in sequence and find the difference.
A detailed explanation is provided in the video.
Code:
class Solution:
def findMinDiff(self, arr,n,m):
if (m == 0 or n == 0):
return 0
arr.sort()
if (n lt m):
return -1
min_diff = arr[n-1] - arr[0]
for i in range(len(arr) - m + 1):
min_diff = min(min_diff, arr[i + m - 1] - arr[i])
return min_diff
print("enter n value")
n = int(input())
print("enter m value")
m = int(input())
print("enter n values")
arr=list(map(int,input().strip().split()))
ob = Solution()
k = ob.findMinDiff(arr,n,m)
print(k)
Link for playlists:
https://www.youtube.com/channel/UCl8x4Pn9Mnh_C1fue-Yndig/playlists
Link for our website: https://learningmonkey.in
Follow us on Facebook @ https://www.facebook.com/learningmonkey
Follow us on Instagram @ https://www.instagram.com/learningmonkey1/
Follow us on Twitter @ https://twitter.com/_learningmonkey
Mail us @ [email protected]
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Chocolate Distribution Problem || Program 15 || Competitive Coding || Learning Monkey ||», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.