Rod Cutting By Dynamic Programming

#include<bits/stdc++.h>
using namespace std;

int rodcut(int price[], int n)
{
    int value[n+1], i, j;
    value[0] = 0;

    for(i=1;i<=n;i++)
    {
        int mx = INT_MIN;
        for(j=0;j<i;j++)
        {
            mx = max(mx, price[j]+value[i-j-1]);
        }
        value[i] = mx;
    }

    return value[n];
}

int main()
{
    int n, i;
    cout << "Enter Rod Size :: ";
    cin >> n;

    int price[n];

    cout << "\nEnter Each Rod Value :: ";
    for(i=0;i<n;i++)
        cin >> price[i];

    cout << "\nMaximum Benefit :: " << rodcut(price, n) << "\n";

    return 0;
}

Comments