

- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Maximum absolute difference of value and index sums in C
We are given with an array of integers. The task is to calculate the maximum absolute difference of value and index sums. That is for each pair of indexes (i,j) in an array, we have to calculate | Arr[i] - A[j] | + |i-j| and find the maximum such sum possible. Here |A| means absolute value of A. If array has 4 elements then indexes are 0,1,2,3 and unique pairs will be ( (0,0), (1,1), (2,2), (3,3), (0,1), (0,2), (0,3), (1,2), (1,3), (2,3) ).
Input − Arr[] = { 1,2,4,5 }
Output − Maximum absolute difference of value and index sums − 7
Explanation − Index pairs and | A[i]-A[j] | + | i-j | are as follows
1. (0,0), (1,1), (2,2), (3,3)--------- |i-j| for each is 0. 2. (0,1)---------- |1-2| + |0-1|= 1+1 = 2 3. (0,2)---------- |1-4| + |0-2|= 3+2 = 5 4. (0,3)---------- |1-5| + |0-3|= 4+3 = 7 5. (1,2)---------- |2-4| + |1-2|= 2+1 = 3 6. (1,3)---------- |2-5| + |1-3|= 3+2 = 5 7. (2,3)---------- |4-5| + |2-3|= 1+1 = 2 Maximum value of such a sum is 7.
Input − Arr[] = { 10,20,21 }
Output − Maximum absolute difference of value and index sums − 13
Explanation − Index pairs and | A[i]-A[j] | + | i-j | are as follows
1. (0,0), (1,1), (2,2)--------- |i-j| for each is 0. 2. (0,1)---------- |10-20| + |0-1|= 10+1 = 11 3. (0,2)---------- |10-21| + |0-2|= 11+2 = 13 4. (1,2)---------- |20-21| + |1-2|= 1+1 = 2 Maximum value of such a sum is 13.
Approach used in the below program is as follows
We take an integer array having numbers as Arr[]
The function maxabsDiff( int arr[],int n) is used to calculate the maximum absolute difference of value and index sums..
We initialize the variable result with -1.
Inside the for loop traverse the array of integers from the beginning.
In nested for loop traverse the remaining elements and calculate the absolute sum of element value and indexes i,j (abs(arr[i] - arr[j]) + abs(i - j)) and store in a variable say absDiff.
If this new calculated sum is more than the previous one then store it in ‘result’.
Return result after traversing the whole array.
Example
#include <stdio.h> #include <math.h> // Function to return maximum absolute difference int maxabsDiff(int arr[], int n){ int result = 0; for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { int absDiff= abs(arr[i] - arr[j]) + abs(i - j); if (absDiff > result) result = absDiff; } } return result; } int main(){ int Arr[] = {1,2,4,1,3,4,2,5,6,5}; printf("Maximum absolute difference of value and index sums: %d", maxabsDiff(Arr,10)); return 0; }
Output
If we run the above code it will generate the following output −
Maximum absolute difference of value and index sums: 13
- Related Questions & Answers
- Maximum of Absolute Value Expression in C++
- Maximum sum of absolute difference of any permutation in C++
- Find the node whose absolute difference with X gives maximum value in C++
- Difference between sums of odd and even digits.
- C Program for Difference between sums of odd and even digits?
- Find difference between sums of two diagonals in C++.
- Maximum absolute difference of the length of strings from two arrays in JavaScript
- Count maximum elements of an array whose absolute difference does not exceed K in C++
- Program to find maximum adjacent absolute value sum after single reversal in C++
- Python - Return the maximum value of the Pandas Index
- Absolute Difference of even and odd indexed elements in an Array (C++)?
- C Program for the Difference between sums of odd and even digits?
- Maximum and minimum sums from two numbers with digit replacements in C++
- Absolute Difference of even and odd indexed elements in an Array in C++?
- Array index to balance sums in JavaScript