top of page
Click here to go to the home page of AskTheCode.

Maximize Function-CodeChef Solution | AskTheCode

Team ATC

Updated: Mar 9, 2021

CodeChef Feb Long Challenge Solution | Maximise Function Solution in Java | Ask The Code

 

Problem:

You are given a sequence A1,A2,…,AN. Find the maximum value of the expression |Ax−Ay|+|Ay−Az|+|Az−Ax| over all triples of pairwise distinct valid indices (x,y,z).


Input:

  • The first line of the input contains a single integer T denoting the number of test cases. The description of T test cases follows.

  • The first line of each test case contains a single integer N.

  • The second line contains N space-separated integers A1,A2,…,AN.

Output:

For each test case, print a single line containing one integer ― the maximum value of |Ax−Ay|+|Ay−Az|+|Az−Ax|.


Constraints:

  • 1≤T≤5

  • 3≤N≤10^5

  • |Ai|≤10^9 for each valid i


Subtasks:

Subtask #1 (30 points):N≤500


Subtask #2 (70 points): original constraints

Example Input:

3 3 2 7 5 3 3 3 3 5 2 2 2 2 5


Example Output:

10 0 6


Explanation:

Example case 1: The value of the expression is always 10. For example, let x=1, y=2 and z=3, then it is |2−7|+|7−5|+|5−2|=5+2+3=10.


Example case 2: Since all values in the sequence are the same, the value of the expression is always 0.


Example case 3: One optimal solution is x=1, y=2 and z=5, which gives |2−2|+|2−5|+|5−2|=0+3+3=6.

 

Code:

/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Codechef{
	public static void main (String[] args) throws java.lang.Exception{
	try {
		Scanner sc = new Scanner(System.in);
	        int t = sc.nextInt();
	        while(t-->0){
	            int n = sc.nextInt();
	            long a[]=new long[n];
	            for(int i=0;i<n;i++) {
	            	a[i]=sc.nextLong();
	            }
	            Arrays.sort(a);
	            long ans=Math.abs(a[0]-a[n-1])+Math.abs(a[n-1]-a[1])+Math.abs(a[0]-a[1]);
	            System.out.println(ans);
	        }
		}catch (Exception e) {
		}
	}
}

Recent Posts

See All

Comentarios


bottom of page