#include <stdio.h>
int max,min;
/* abs function that doesnot uses comparison for making it positive */
return x | ( 1 << 31);
}
/* this max function calculates max of two numbers without comparison */
int max1(int x,int y) {
return (x
+ y
+ abs(y
- x
)) / 2 ; }
/* this min function calculates min of two numbers without comparison */
int min1(int x,int y) {
return -max1(-x,-y);
}
/* Initialising max and min as the first element and calculating the max and min for every pair */
void FindMaxSum(int arr[],int size) {
int i;
max = min = arr[0];
for(i = 1; i < size; i++) max = max1(max,arr[i]);
for(i = 1; i < size; i++) min = min1(min,arr[i]);
}
int main()
{
int arr[] = {7, 15, 6, 15, 1, 8};
FindMaxSum(arr, 6);
printf("Maximum element = %d and the minimum element = %d\n",max
,min
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CmludCBtYXgsbWluOwoKLyogYWJzIGZ1bmN0aW9uIHRoYXQgZG9lc25vdCB1c2VzIGNvbXBhcmlzb24gZm9yIG1ha2luZyBpdCBwb3NpdGl2ZSAqLwppbnQgYWJzKGludCB4KSB7CnJldHVybiB4IHwgKCAxIDw8IDMxKTsKfQoKLyogdGhpcyBtYXggZnVuY3Rpb24gY2FsY3VsYXRlcyBtYXggb2YgdHdvIG51bWJlcnMgd2l0aG91dCBjb21wYXJpc29uICovCmludCBtYXgxKGludCB4LGludCB5KSB7CnJldHVybiAoeCArIHkgKyBhYnMoeSAtIHgpKSAvIDIgOwkKfQoKLyogdGhpcyBtaW4gZnVuY3Rpb24gY2FsY3VsYXRlcyBtaW4gb2YgdHdvIG51bWJlcnMgd2l0aG91dCBjb21wYXJpc29uICovCmludCBtaW4xKGludCB4LGludCB5KSB7CnJldHVybiAtbWF4MSgteCwteSk7Cn0KCi8qIEluaXRpYWxpc2luZyBtYXggYW5kIG1pbiBhcyB0aGUgZmlyc3QgZWxlbWVudCBhbmQgY2FsY3VsYXRpbmcgdGhlIG1heCBhbmQgbWluIGZvciBldmVyeSBwYWlyICovCnZvaWQgRmluZE1heFN1bShpbnQgYXJyW10saW50IHNpemUpIHsKaW50IGk7Cm1heCA9IG1pbiA9IGFyclswXTsKZm9yKGkgPSAxOyBpIDwgc2l6ZTsgaSsrKSBtYXggPSBtYXgxKG1heCxhcnJbaV0pOwpmb3IoaSA9IDE7IGkgPCBzaXplOyBpKyspIG1pbiA9IG1pbjEobWluLGFycltpXSk7Cn0KCmludCBtYWluKCkKewppbnQgYXJyW10gPSB7NywgMTUsIDYsIDE1LCAxLCA4fTsKRmluZE1heFN1bShhcnIsIDYpOwpwcmludGYoIk1heGltdW0gZWxlbWVudCA9ICVkIGFuZCB0aGUgbWluaW11bSBlbGVtZW50ID0gJWRcbiIsbWF4LG1pbik7CmdldGNoYXIoKTsKcmV0dXJuIDA7Cn0=