@divya

I try to simulate what you said for the given array

index     :     0, 1, 2, 3, 4, 5, 6, 7, 8, 9
array1    :    8, 7, 4 ,3 , 2, 1, 1, 1, 1, 1
                   ^              ^
                  p11          p12

*p11 = 8 and  *p12 = 3

index     :     0,  1,   2,   3,   4,  5,   6,  7, 8, 9
array2    :    34, 23, 21, 19, 15, 13, 11, 8, 4, 2
                   ^    ^
                  p21 p22

*p21 = 34 and  *p22 = 23

a =  8 + 34 = 41    //arr1[0] + arr2[0]
b = 8 +23 = 31    //arr1[0] + arr2[1]
c = 34 + 3 = 37   //arr1[4] + arr2[0]     greatest !!!
d = 7 +23 = 30     //arr1[1] + arr2[1]

arr1[0] + arr2[2] = 29   which is less than c..

here is my output

  arr1[0] + arr2[0] = 42
  arr1[1] + arr2[0] = 41
  arr1[2] + arr2[0] = 38
  arr1[3] + arr2[0] = 37
  arr1[4] + arr2[0] = 36
  arr1[5] + arr2[0] = 35
  arr1[6] + arr2[0] = 35
  arr1[7] + arr2[0] = 35
  arr1[8] + arr2[0] = 35
  arr1[9] + arr2[0] = 35

i have attached the code try with  replacing arr1 and arr2 with
following.and the case u wanted to point out will be taken throught in
following test case..(arr1[0] + arr2[1] = 9+27 = 36  will be taken before
arr1[6] + arr2[0] = 1+34 = 35 )

int arr1[N] = {9,7,4,3,2,1,1,1,1,1};
int arr2[N] = {34,27,21,19,15,13,11,8,4,2};

Regards
Jitendra Kushwaha

-- 
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.

#include <cstdio>
#include<iostream>
using namespace std;

#define N 10

int main(void)
{
    int arr1[N] = {8,7,4,3,2,1,1,1,1,1};
    int arr2[N] = {34,23,21,19,15,13,11,8,4,2};
    int *p11,*p12,*p21,*p22;
    int w=0,x=0,y=0,z=0;
    p11 = p12 = arr1;
    p21 = p22 = arr2;
    int f1;
    f1 = 0;
   
    for(int i=0;i<N;i++) {
        int ans=0;
        int a,b,c,d;
        a = *p11 + *p21;
        b = *p11 + *p22;
        c = *p21 + *p12;
        d = *(p11+1) + *(p21+1);
       
        //printf("a=%d b=%d c=%d d=%d\n",a,b,c,d);     //debug
       
        if(f1==0)            ans = a  ,    p12++ , p22++ , f1=1 , printf(" arr1[%d] + arr2[%d] = ",w,y),x++,z++; 
       
        else if(b >= c && b >= d )    ans = b  , p22++ , printf(" arr1[%d] + arr2[%d] = ",w,z),z++; 
       
        else if(c >= b && c >= d )    ans = c , p12++ ,  printf(" arr1[%d] + arr2[%d] = ",x,y),x++; 
       
        else    ans = d , p11++ , p21++ ,  printf(" arr1[%d] + arr2[%d] = ",w,y),w++,y++; 
       
        printf("%d\n",ans);
    }
}

Reply via email to