#486. 公平的糖果交换

公平的糖果交换

题目描述

爱丽丝和鲍勃拥有不同总数量的糖果。给你两个数组 a 和 b ,a[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,b[j] 是鲍勃拥有的第 j 盒糖果中的糖果数量。

两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥有的糖果总数量是他们每盒糖果数量的总和。

如果存在可能,爱丽丝想用尽可能少的糖果和鲍勃交换,如果存在多个答案,输出爱丽丝用于交换糖果最少的那种方案 。如果不行,输出-1。

输入格式

第一行输入n,m,分别表示爱丽丝和鲍勃拥有的糖果盒的数量。 第二行输入n个数字,表示爱丽丝每盒糖果的数量。 第三行输入m个数字,表示鲍勃每盒糖果的数量。

输出格式

输出仅一行,如果存在,输出爱丽丝用最少的糖果和鲍勃交换的糖果方案,如果不存在,输出-1。

2 2
1 1
2 2
1 2
3 2
1 2 5
2 4
5 4

数据规模

1<=n,m<=1041 <= n, m <= 10^4 1<=a[i],b[j]<=1051 <= a[i], b[j] <= 10^5 爱丽丝和鲍勃的糖果总数量不同。 题目数据保证对于给定的输入至少存在一个有效答案。

来源:力扣(LeetCode)