Processing math: 100%

時間制限 : sec, メモリ制限 : KB
Japanese

村を整える

イヅア村には畑1から畑NまでのN区画の畑がある。この村では、それぞれの畑に植えなければならない作物の数が畑ごとに決まっている。その決まりに従った数の作物がすべての畑に植えられると、村人たちは村が整ったと言って、その年の豊作を確信する。

今年は、その決まりを知らない人がすべての畑に適当に作物を植えてしまった。村長であるあなたは、それぞれの畑について作物の数が決められた数になるようにして、村を整えなければならない。しかし、イヅア村では畑iに植えられている作物の数(x本とする)を変更したいときは、以下のような手順に従わなければならない。

  • 作物の数がx本より多い畑kを選ぶ。
  • kの作物の数をy本とするとき、yx本の作物を畑iに加えることで畑iの作物の数をy本にする。

この手順を何回か行うことで村を整えることができるなら、そのために必要な最少の回数を知りたいとあなたは思っている。

畑の区画の数Nとそれぞれの畑に植えなければならない作物の数、決まりを知らない人が植えた作物の数が与えられたとき、村を整えるために行う手順の最少の回数を求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

N
r1 r2 ... rN
c1 c2 ... cN

1行目に畑の区画の数N (1N1,000)が与えられる。続く1行に、畑iに植えなければならない作物の数ri (1ri1,000)が与えられる。続く1行に、決まりを知らない人が畑iに植えた作物の数ci (1ci1,000)が与えられる。

出力

村を整えることができるなら、そのために必要な最少の回数を1行に出力する。村を整えることができないなら、「-1」を1行に出力する。

入出力例

入力例1

3
3 3 2
3 2 1

出力例1

2

入力例2

3
4 3 2
4 2 1

出力例2

-1

Note

Algorithm
 
 
BESsBESsBESsBESsBESsBESsBESsBESs