编程题
### 问题描述
在一个美丽的小镇上,小然和他的朋友们正在举行一个糖果传递的游戏。游戏规则如下:
- 小然有一个装有 $N$ 个糖果的袋子,每个糖果的价值在 $1$ 到 $K$ 之间。
- 他的朋友们也有一个装有 $M$ 个糖果的袋子,每个糖果的价值也在 $1$ 到 $K$ 之间。
小然可以执行以下操作:
- 选择一个整数 $X$,满足 $1 \leq X \leq K$。
- 将一个价值为 $X$ 的糖果添加到小然的袋子或朋友们的袋子中。
小然的目标是让他的糖果平均价值严格大于他的朋友们的糖果平均价值。请你帮助他找出实现这个目标需要的最小操作次数,如果无法实现,返回 $-1$。
糖果的平均价值定义为糖果总价值除以糖果的数量。
### 输入格式
第一行输入一个整数 $T$,表示游戏的轮数。
每轮游戏包括多行输入:
- 第一行包含三个空格分隔的整数 $N$,$M$ 和 $K$,分别表示小然的袋子中的糖果数量,朋友们的袋子中的糖果数量,以及糖果的最大价值。
- 第二行包含 $N$ 个空格分隔的整数,表示小然袋子中的每个糖果的价值。
- 第三行包含 $M$ 个空格分隔的整数,表示朋友们袋子中的每个糖果的价值。
### 输出格式
对于每轮游戏,输出一个整数,表示达到目标需要的最小操作次数。如果无法实现,输出 $-1$。
### 样例输入
```text
4
6 3 9
3 7 3 5 2 4
8 3 5
1 1 4
4
2
2 2 1
1 1
1 1
5 5 5
3 4 3 4 3
4 5 4 5 4
```
### 样例输出
```
2
0
-1
3
```
### 说明
在第一个样例中,小然可以执行以下操作:
- 将一个价值为 $8$ 的糖果添加到他的袋子中。
- 将一个价值为 $2$ 的糖果添加到朋友们的袋子中。
执行这些操作后,小然的糖果平均价值为 $4.5714...$,朋友们的糖果平均价值为 $4.5$。
### 评测数据范围
$1 \leq T \leq 10^4$,$1 \leq N,M \leq 10^5$,$1 \leq K \leq 10^6$,$1 \leq A_i,B_i \leq K$。
所有测试用例 $N$ 的总和不会超过 $10^5$。
所有测试用例 $M$ 的总和不会超过 $10^5$。