面包新语--中级
69 | 187 |
通过 | 提交 |
题目描述
CYK最近开始学习烤面包,他发现每种面包都有一个“恰好的烘烤时间”,设“恰好的烘烤时间”为X的话,当烘烤时间超过X,面包就烤焦了;当烘烤时间低于X,面包就没熟。
现在CYK烤了很多次面包,分别记录下了没烤熟和烤焦了的面包烘烤时间,已知每种面包至少要有一次没烤熟的记录和一次烤焦了的记录才算合理确定,猜猜看他最少用了几种面包?
输入格式
测试数据包含多组数据。
每组数据第一行给出n,m(n<10,m<10)分别表示没烤熟的个数和烤焦了的个数,第二行给出n个数字表示没烤熟的面包烘烤时间,第三行给出m个数字表示烤焦了的面包烘烤时间,所有时间都是小于100000的浮点数。
输出格式
对于每组数据输出单独一行一个数字,表示最少使用的面包种数。如果数据不合理,输出-1。
样例输入 #1
3 2 5 4 2 5 7 3 2 5 7 4 5 7
样例输出 #1
2 -1
提示
第一组样例中,没烤熟的几个面包的烘烤时间是{2,4,5},烤焦了的几个面包的烘烤时间是{5,7},那么可以推断出CYK至少用了两种面包,第一种面包的“恰好烘烤时间”可以是大于4小于5的任意数字({2,4}没烤熟,{5}烤焦了),第二种面包的“恰好烘烤时间”可以是大于5小于7的任意数字({5}没烤熟,{7}烤焦了)。 第二组样例中,可以4和5组成一种,5和7组成一种,但多出来的7没有对应的烤焦记录来确定第三种,所以数据不合法,输出-1.