Advertisement
niloy_47

Cutting Rod (Dynamic Programming)

Jul 10th, 2014
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include<stdio.h>
  2. int n, p[11], s[10], r[100], cut[2], x=0;
  3.  
  4. int Coin(){
  5. int i, j, q;
  6. r[0]=0;
  7. for(j=1; j<=n; j++){
  8. q=-99;
  9. for(i=1; i<=j; i++){
  10. q=Max(q, i, j);
  11. }
  12. r[j]=q;
  13. }
  14.  
  15. return q;
  16. }
  17.  
  18. int Max(a, i, j){
  19. if(a>(p[i]+r[j-i])){
  20. return a;
  21. }
  22. else{
  23. x=i;
  24. return (p[i]+r[j-i]);
  25. }
  26. }
  27.  
  28.  
  29. void main(void){
  30. int i, q;
  31. printf("Enter length: ");
  32. scanf("%d", &n);
  33. for(i=0; i<=n; i++){
  34. s[i]=i;
  35. if(i==0){
  36. p[0]=0;
  37. }
  38. else{
  39. printf("Enter price of %d: ", s[i]);
  40. scanf("%d", &p[i]);
  41. }
  42. }
  43. q = Coin();
  44.  
  45. printf("Maximum Value: %d\n", q);
  46. if(x==0 || x==n){
  47. printf("No Cut\n");
  48. }
  49. else{
  50. printf("Cut: %d & %d\n", x, n-x);
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement