硬币

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

描述

有N堆硬币,每堆个数可以用一个无序N元组来表示{x1,x2,x3,x4,...,xn}即这N堆硬币的个数分别为x1,x2,……。

现在你可以对这N堆硬币进行2种操作。

第一种操作:将其中任意两堆硬币合并成一堆。

第二种操作:将其中某一堆硬币任意分成两堆。

你想通过这两种操作将N堆硬币最终变成M堆,并且这M堆硬币个数为无序M元组{y1,y2,...,ym}。问最少操作次数,如果不能实现这种变换,则将次数视为-1。

格式

输入格式

输入包括两行。

第一行一个整数N,之后跟着N个整数,表示初始硬币个数。

第二行一个整数M,之后跟着M个整数,表示最终硬币个数。

输出格式

输出仅包含一个整数,表示最少次数。

样例1

样例输入1

6 1 2 3 4 5 6
3 7 7 7

样例输出1

3

样例2

样例输入2

7 3 1 4 20 24 16 20
8 5 15 21 14 16 12 2 3

样例输出2

5

限制

每个测试点1s。

提示

总共有10个测试点,每个测试点10分。

测试点1-2:N≤2,M≤2。

测试点3:N=2,M=3。

对于100%数据,1≤N,M≤10,读入的数都不超过50。

NOIP2012模拟赛第二弹

未参加
状态
已结束
规则
OI
题目
3
开始于
2012-11-01 19:00
结束于
2012-11-01 22:30
持续时间
3.5 小时
主持人
参赛人数
477