白茶带了一车面包人来到干净又卫生餐馆吃午饭。他们一共有 n 人,第 i 个人的最小食量为 a_i ,最大食量为 b_i。设第 i 个人午饭吃下了量为 c_i 的食物,为了能吃饱,每人所吃食物不小于最小食量,同时不大于最大食量,即满足 a_i\le c_i\le b_i 。
餐馆一共有 m 道菜,每道菜至多只能点一次。第 j 道菜的提供食物量为 d_j 。白茶会选择一种点菜方案并让服务员上菜。上完菜后,他们将一起用餐。如果无论怎么分配食物,都存在有人吃不饱(即此人所吃食物小于最小食量),那么这种点菜方案是糟糕的,否则这种点菜方案是良好的。为了让所有人吃得饱,白茶只会选择良好的点菜方案。
然而,在良好的点菜方案里,可能会存在剩菜情况,即所有人都吃到撑后 (即所有人所吃食物等于最大食量),仍有剩余食物量。换言之,一个点菜方案的剩余食物量是在所有分配食物方案中提供食物量减去所有人所吃食物的最小非负数。
为了响应光盘行动,白茶打算选择一个良好的点菜方案,使得剩余食物量 w 最小。请你求出这个最小的剩余食物量 w_{\min{}} 。如果没有任何一个良好的点菜方案,请输出 -1
。
输入
首先输入一行一个整数 n(1\le n\le10^3)
接下来输入一行 n 个整数,第 i 个整数代表 a_i(1\le a_i\le10^4)
接下来输入一行 n 个整数,第 i 个整数代表 b_i(a_i\le b_i\le10^5)
接下来输入一行一个整数 m(1\le m\le10)
接下来输入一行 m 个整数,第 i 个整数代表 d_i(1\le d_i\le10^8)
行内有多个整数时,每个整数间用一个空格间隔
输出
一行一个整数,代表 w_{\min{}} 或 -1
。
样例
标准输入 复制文本 |
3 1 2 3 3 3 3 4 5 6 7 8 |
标准输出 复制文本 |
0 |
标准输入 复制文本 |
3 11 11 10 12 12 12 5 2 13 15 29 9 |
标准输出 复制文本 |
1 |
标准输入 复制文本 |
2 2 3 11451 4 2 3 1 |
标准输出 复制文本 |
-1 |
提示
对测试用例 1 ,剩菜最小的一种良好的点菜方案可以是只点第四道菜,并分配食物 c_1=2,c_2=c_3=3
对测试用例 2 ,剩菜最小的一种良好的点菜方案可以是点第二、三、五道菜,并分配食物 c_1=c_2=c_3=12
对测试用例 3 ,即便都点也不能让所有人吃饱。