β Maximizing Difference(Contest)
Maximizing Difference medium Time Limit: 2 sec Memory Limit: 128000 kB
Problem Statement :
You are given an integer N and two arrays A and B each of size N. In one move, you can swap any integer from array A with that of array B, they don't need to have the same index. Let sumA be the sum of elements of array A and sumB be the sum of the elements of array B. Find the maximum possible value of sumA - sumB possible after applying optimal moves. Input First line of the input contains an integer N, The second line of the input contains N space seperated integers of array A, The third line of the input contains N space seperated integers of array B.
Constraints: 1 <= N <= 105 1 <= Ai, Bi <= 109 Output Print the maximum possible value of sumA - sumB possible after apply optimal moves. Example Sample Input: 5 7 9 4 4 2 8 3 2 4 1
Sample Output: 20
Explaination: We swap B1 with A5, This makes A = [7, 9, 4, 4, 8], B = [2, 3, 2, 4, 1]. sumA = 32. sumB = 12. sumA - sumB = 20 It can be proved that this is the maximum possible difference.
link:https://my.newtonschool.co/playground/code/1fh5vjy1m1cy/
```java
import java.io.*; // for handling input/output
import java.util.*; // contains Collections framework
// don't change the name of this class
// you can add inner classes if needed
class Main {
public static void main (String[] args) {
// Your code here
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr1 = new int[n];
for(int i=0; i<n; i++){
arr1[i] = sc.nextInt();
}
int[] arr2 = new int[n];
for(int i=0; i<n; i++){
arr2[i] = sc.nextInt();
}
Arrays.sort(arr1);
Arrays.sort(arr2);
int p1 = 0;
int p2 = n-1;
for(int i =0; i<n; i++){
if(arr1[p1] < arr2[p2]){
int temp1 = arr1[p1];
int temp2 = arr2[p2];
arr1[p1] = temp2;
arr2[p2] = temp1;
p1++;
p2--;
}
}
long sum1 = 0;
long sum2 = 0;
for(int i=0; i<n; i++){
sum1 += arr1[i];
sum2 += arr2[i];
}
System.out.println(sum1-sum2);
}
}
```
Last updated