Exemple #1
0
/* Driver program to test above functions */
int main()
{
    int arr[] = {1, 5, 8, 9, 10, 17, 17, 20};
    int size = sizeof(arr)/sizeof(arr[0]);
    printf("Maximum Obtainable Value is %d\n", cutRod(arr, size));
    getchar();
    return 0;
}
Exemple #2
0
int main()
{
    int size = sizeof(arr)/sizeof(arr[0]);
    int r[size];
    memset(r, -1, sizeof(arr));
    printf("Maximum Obtainable Value is %d\n", cutRod(size, r));
    return 0;
}
Exemple #3
0
int cutRod(int size){
	if(size <= 0)
		return 0;
	int q = INT_MIN;
	for(int i=0;i<size;i++){
		q = max(q, arr[i] + cutRod(size-i-1));
	}
	return q;
}
Exemple #4
0
int cutRod(int price[], int n)
{
   int i;
   if (n <= 0)
     return 0;
   int max_val = INT_MIN;
   for (i = 0; i<n; i++)
         max_val = max(max_val, price[i] + cutRod(price, n-i-1));
 
   return max_val;
}
Exemple #5
0
int cutRod(int size, int r[]){
	int q = INT_MIN;
	if(r[size]>=0)
		return r[size];
	if(size == 0)
		q = 0;
	for(int i=0;i<size;i++){
		q = max(q, arr[i] + cutRod(size-i-1, r));
	}
	r[size] = q;
	return q;
}
Exemple #6
0
/* Returns the best obtainable price for a rod of length n and
   price[] as prices of different pieces */
int cutRod(int price[], int n)
{
   if (n <= 0)
     return 0;
   int max_val = INT_MIN;
 
   // Recursively cut the rod in different pieces and compare different 
   // configurations
   for (int i = 0; i<n; i++)
         max_val = max(max_val, price[i] + cutRod(price, n-i-1));
 
   return max_val;
}
Exemple #7
0
int main()
{
    int size, arr[50]; 
    int i; 
    printf("Enter Size of rod:");
    scanf("%d",&size);
    printf("Enter the prices of the pieces:");
    for(i=0;i<size;i++)
      scanf("%d",&arr[i]);
    printf("Maximum Obtainable Value is %d\n", cutRod(arr, size));
    getchar();
    return 0;
}
void cutRod(int *price, int n, int * res) {
    if (n <= 0) {
        *res = 0;
        return;
    }
    int max_val = INT_MIN;
    int aux[n];
    memset(aux, INT_MIN, n);
    int i;
    for(i = 0; i<n; i++) {
        cutRod(price, n-i-1, &aux[i]);
    }
    #pragma omp taskwait
    for(i = 0; i<n; i++) {
        max_val = max(max_val, price[i] + aux[i]);
    }

    *res = max_val;
}
Exemple #9
0
int main()
{
    int size = sizeof(arr)/sizeof(arr[0]);
    printf("Maximum Obtainable Value is %d\n", cutRod(size));
    return 0;
}