Examveda

Consider the following recursive implementation of the rod cutting problem:
#include<stdio.h>
#include<limits.h>
int max_of_two(int a, int b)
{
      if(a > b)
            return a;
      return b;
}
int rod_cut(int *prices, int len)
{
      int max_price = INT_MIN; // INT_MIN is the min value an integer can take
      int i;
      if(len <= 0 )
	return 0;
      for(i = 0; i < len; i++)
	 max_price = max_of_two(_____________); // subtract 1 because index starts from 0
      return max_price;
}
int main()
{
      int prices[]={2, 5, 6, 9, 9, 17, 17, 18, 20, 22},len_of_rod = 10;
      int ans = rod_cut(prices, len_of_rod);
      printf("%d",ans);
      return 0;
}
Complete the above code.

A. max_price, prices[i] + rod_cut(prices,len - i - 1)

B. max_price, prices[i - 1].

C. max_price, rod_cut(prices, len - i - 1)

D. max_price, prices[i - 1] + rod_cut(prices,len - i - 1)

Answer: Option A


Join The Discussion

Related Questions on Dynamic Programming in Data Structures