Question
Ques: You have N magical bags of candies in front of you. The i th bag has A i candies in it. It takes you
Ques: You have N magical bags of candies in front of you. The ith bag has Ai candies in it. It takes you one minute to finish a bag of candies, no matter how many candies are there in it. Every time you finish a bag with X candies in it, the bag is magically replenished with X/2 (rounded down to the nearest integer) more candies. The input is a sequence of integers. The first integer N is the number of bags. The next integer K is the number of minutes you have. The next N integers is the number of candies in the bags. The output of your algorithm is a single integer which represents the maximum number of candies you can eat. For the input sequence, 5, 3, 2, 1, 7, 4, 2 , the output should be 14 Write an algorithm that determines the maximum number of candies you can eat in K minutes. Explain carefully the data structure to be used and the worst case time complexity of your solution
Answer:
maxCandies(int A[],int N, int K) { int sum=0; for(i=0 to K-1) { int index= getMaxIndex(A,N); sum=sum+A[index]; A[index]=A[index]/2; } return sum; }
getMaxIndex(int A[], int N) { int maxIndex=0; int max=A[0]; for(i=1 to N-1) { if(A[i]>max) { maxIndex=i; max=A[i]; } } return maxIndex; }
This is the solution of this question but i need the explanation of each line of this Algorithm.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started