check out this solution.I think this works correct will explain logic if u find it correct.
#include <stdio.h> #define SIZE 4 int result[SIZE]; int final_cost = 100000; int curr_ans[SIZE]; void save_arr(int *result) { int i; for (i=0 ;i<SIZE ;i++) { curr_ans[i] = result[i]; } } void print_ans() { int i; for (i=0 ;i<SIZE ;i++) { printf (" %d",curr_ans[i]); } } void rec (int *arr,int index,int min,int cost) { if (index >= 0) { // keep the arr[index] if (arr[index] <= min) { result[index] = arr[index]; rec (arr,index-1,arr[index],cost); } else { result[index] = min; cost += (arr[index] - min); rec (arr,index-1,min,cost); cost -= (arr[index] - min); } // remove the arr[index] result[index] = 0; cost += arr[index]; rec (arr,index-1,min,cost); } else if (index == -1) { if (cost < final_cost) { final_cost = cost; save_arr(result); } return; } } int main(int argc,char *argv[]) { int i; int arr[SIZE] = {10,3,11,12}; rec(arr,SIZE-1,arr[SIZE]+1,0); printf ("\n minimum cost = %d \n sorted array =",final_cost); print_ans(); return 0; } On Aug 29, 1:17 am, Neeraj Gupta <neeraj.gu...@nsitonline.in> wrote: > On Sun, Aug 29, 2010 at 1:35 AM, Gene <gene.ress...@gmail.com> wrote: > > My algorithm proposal wasn't correct, but I can't see how to get 8. > > You need to decrement 14, 15, 16, 13 to 11. This costs 14. > > > So do I. > > May be he has not noticed that incrementing a number is not an option. ;) > > > On Aug 28, 5:41 am, gaurav singhal <singhal08gau...@gmail.com> wrote: > > > @ Gene : > > > > Output for > > > > int a[] = { 14, 15, 16, 13, 11, 18 }; > > > > is coming out to be 14 > > > > whereas minimum cost will be : 8 > > > -- > > You received this message because you are subscribed to the Google Groups > > "Algorithm Geeks" group. > > To post to this group, send email to algoge...@googlegroups.com. > > To unsubscribe from this group, send email to > > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/algogeeks?hl=en. -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algoge...@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.