atcoder#KEYENCE2019C. Exam and Wizard

Exam and Wizard

配点 : 400400

問題文

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

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

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

  • 数列 A1,A2,...,ANA_1, A_2, ..., A_{N} の総和と数列 C1,C2,...,CNC_1, C_2, ..., C_{N} の総和は等しい
  • どの ii に対しても,BiCiB_i \leq C_i が成り立つ

制約

  • 1N1051 \leq N \leq 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 1Bi1091 \leq B_i \leq 10^9
  • Ai,BiA_i, B_i は整数

入力

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

NN

A1A_1 A2A_2 ...... ANA_{N}

B1B_1 B2B_2 ...... BNB_{N}

出力

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

3
2 3 5
3 4 1
3

(A1,A2,A3)=(2,3,5)(A_1, A_2, A_3) = (2, 3, 5)(B1,B2,B3)=(3,4,1)(B_1, B_2, B_3) = (3, 4, 1) であり,このままでは 11 番目と 22 番目の試験に合格できません. 以下のように C1,C2,C3C_1, C_2, C_3 を構成すれば,AiA_iCiC_i が異なるような ii の個数の最小値 33 を達成できます.

  • (C1,C2,C3)=(3,5,2)(C_1, C_2, C_3) = (3, 5, 2)
3
2 3 3
2 2 1
0

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

3
17 7 1
25 6 14
-1

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

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
5