003 - 村を整える
時間制限 1 秒 / メモリ制限 256 MB / 得点 4 / x 4 /
問題
イヅア村には畑1から畑$N$までの$N$区画の畑がある。この村では、それぞれの畑に植えなければならない作物の数が畑ごとに決まっている。その決まりに従った数の作物がすべての畑に植えられると、村人たちは村が整ったと言って、その年の豊作を確信する。
今年は、その決まりを知らない人がすべての畑に適当に作物を植えてしまった。村長であるあなたは、それぞれの畑について作物の数が決められた数になるようにして、村を整えなければならない。しかし、イヅア村では畑$i$に植えられている作物の数($x$本とする)を変更したいときは、以下のような手順に従わなければならない。
- 作物の数が$x$本より多い畑$k$を選ぶ。
- 畑$k$の作物の数を$y$本とするとき、$y-x$本の作物を畑$i$に加えることで畑$i$の作物の数を$y$本にする。
この手順を何回か行うことで村を整えることができるなら、そのために必要な最少の回数を知りたいとあなたは思っている。
畑の区画の数$N$とそれぞれの畑に植えなければならない作物の数、決まりを知らない人が植えた作物の数が与えられたとき、村を整えるために行う手順の最少の回数を求めるプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
$N$ $r_1$ $r_2$ ... $r_N$ $c_1$ $c_2$ ... $c_N$
1行目に畑の区画の数$N$ ($ 1 \leq N \leq 1,000 $)が与えられる。続く1行に、畑$i$に植えなければならない作物の数$r_i$ ($1 \leq r_i \leq 1,000$)が与えられる。続く1行に、決まりを知らない人が畑$i$に植えた作物の数$c_i$ ($1 \leq c_i \leq 1,000$)が与えられる。
出力
村を整えることができるなら、そのために必要な最少の回数を1行に出力する。村を整えることができないなら、「 -1 」を1行に出力する。
入出力例
入力例1
3 3 3 2 3 2 1
出力例1
2
入力例2
3 4 3 2 4 2 1
出力例2
-1