SP260 CTAIN - Containers

题目描述

你有 $n$ 个装满水的杯子,第 $i$ 个杯子的容量为 $o_i$ 。 现在你想要把 $o_1,o_2……o_n$ 的水量转变为 $f_1,f_2……f_n$ 。 只能通过以下两种操作: 1.将一个杯子里的水倒入另一个,使该杯子水量为 $0$ 或被灌水的杯子水量满。 2.倒掉一个杯子里所有的水。 问:最低需要的操作数,如果无解,输出"NO"(不含引号)。 #

输入格式

第一行一个整数 $T$ ,表示样例组数。 接下来 $T\times3$ 行, 第 $i\times 3 - 2$ 行一个整数 $n$ ,表示第 $i$ 组数据中水杯个数。 第 $i\times 3 - 1$ 行 $n$ 个整数 , 第 $j$ 个整数表示第 $i$ 组数据中 $o_j$ 的值。 第 $i\times 3$ 行 $n$ 个整数 , 第 $j$ 个整数表示第 $i$ 组数据中 $f_j$ 的值。 #

输出格式

输出 $T$ 行,每行一个整数或字符串,表示最小的操作次数或无解("NO")