C - Exam and Wizard

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 400

問題文

大学生の高橋君は N 個の試験を受けてすべてに合格する必要があります. 現在,i 番目の試験の準備度は A_{i} です. また,高橋君の入念な調査によって,i 番目の試験に合格するためには準備度を B_{i} 以上にしなくてはならないことが分かっています.

このままだとすべての試験に合格できないかもしれないと思った高橋君は,魔法使いの青木君に頼んで, 試験の準備度の総和は変えずに,なるべく少ない数の試験の準備度を変更してもらうことで試験を乗り切ることにしました.

高橋君に代わって,以下の条件を満たす数列 C_1, C_2, ..., C_{N} を考えたときの A_iC_i が異なるような i の個数の最小値を求めてください. そのような数列 C_1, C_2, ..., C_{N} が構成できない場合は -1 を出力してください.

  • 数列 A_1, A_2, ..., A_{N} の総和と数列 C_1, C_2, ..., C_{N} の総和は等しい
  • どの i に対しても,B_i \leq C_i が成り立つ

制約

  • 1 \leq N \leq 10^5
  • 1 \leq A_i \leq 10^9
  • 1 \leq B_i \leq 10^9
  • A_i, B_i は整数

入力

入力は以下の形式で標準入力から与えられる.

N
A_1 A_2 ... A_{N}
B_1 B_2 ... B_{N}

出力

条件を満たす数列 C_1, C_2, ..., C_{N} を考えたときの A_iC_i が異なるような i の個数の最小値を出力せよ. 数列 C_1, C_2, ..., C_{N} が構成できない場合は,-1 を出力せよ.


入力例 1

3
2 3 5
3 4 1

出力例 1

3

(A_1, A_2, A_3) = (2, 3, 5)(B_1, B_2, B_3) = (3, 4, 1) であり,このままでは 1 番目と 2 番目の試験に合格できません. 以下のように C_1, C_2, C_3 を構成すれば,A_iC_i が異なるような i の個数の最小値 3 を達成できます.

  • (C_1, C_2, C_3) = (3, 5, 2)

入力例 2

3
2 3 3
2 2 1

出力例 2

0

この場合は,何もしなくても全ての試験に合格できます.


入力例 3

3
17 7 1
25 6 14

出力例 3

-1

この場合は,どのようにしても全ての試験に合格することはできません.


入力例 4

12
757232153 372327760 440075441 195848680 354974235 458054863 463477172 740174259 615762794 632963102 529866931 64991604
74164189 98239366 465611891 362739947 147060907 118867039 63189252 78303147 501410831 110823640 122948912 572905212

出力例 4

5

Score : 400 points

Problem Statement

A university student, Takahashi, has to take N examinations and pass all of them. Currently, his readiness for the i-th examination is A_{i}, and according to his investigation, it is known that he needs readiness of at least B_{i} in order to pass the i-th examination.

Takahashi thinks that he may not be able to pass all the examinations, and he has decided to ask a magician, Aoki, to change the readiness for as few examinations as possible so that he can pass all of them, while not changing the total readiness.

For Takahashi, find the minimum possible number of indices i such that A_i and C_i are different, for a sequence C_1, C_2, ..., C_{N} that satisfies the following conditions:

  • The sum of the sequence A_1, A_2, ..., A_{N} and the sum of the sequence C_1, C_2, ..., C_{N} are equal.
  • For every i, B_i \leq C_i holds.

If such a sequence C_1, C_2, ..., C_{N} cannot be constructed, print -1.

Constraints

  • 1 \leq N \leq 10^5
  • 1 \leq A_i \leq 10^9
  • 1 \leq B_i \leq 10^9
  • A_i and B_i are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 ... A_{N}
B_1 B_2 ... B_{N}

Output

Print the minimum possible number of indices i such that A_i and C_i are different, for a sequence C_1, C_2, ..., C_{N} that satisfies the conditions. If such a sequence C_1, C_2, ..., C_{N} cannot be constructed, print -1.


Sample Input 1

3
2 3 5
3 4 1

Sample Output 1

3

(A_1, A_2, A_3) = (2, 3, 5) and (B_1, B_2, B_3) = (3, 4, 1). If nothing is done, he cannot pass the first and second exams. The minimum possible number of indices i such that A_i and C_i are different, 3, is achieved when:

  • (C_1, C_2, C_3) = (3, 5, 2)

Sample Input 2

3
2 3 3
2 2 1

Sample Output 2

0

In this case, he has to do nothing in order to pass all the exams.


Sample Input 3

3
17 7 1
25 6 14

Sample Output 3

-1

In this case, no matter what is done, he cannot pass all the exams.


Sample Input 4

12
757232153 372327760 440075441 195848680 354974235 458054863 463477172 740174259 615762794 632963102 529866931 64991604
74164189 98239366 465611891 362739947 147060907 118867039 63189252 78303147 501410831 110823640 122948912 572905212

Sample Output 4

5