编程题
### 问题描述
小蓝和小明在家感到很无聊,决定玩一款名为飞行棋的游戏,这个游戏是基于骰子点数来在一维曲线棋盘上前进的游戏,他们找到一个飞行棋盘和一堆标有价值的游戏币,但是却找不到骰子了。于是,他们想出了一个新的玩法。他们将游戏币进行平分,然后小蓝在自己的游戏币上标注数字以代替骰子点数来决定前进后退的步数,棋盘可以看做无限大。
现在,小蓝随机从自己的游戏币中抽出 $n$ 个币,每个币都标有一个数字 $d_i$ 和一个价值 $v_i$ 。然后小明需要从自己的游戏币中选择相同价值的币来与小蓝进行交换,以获取想要的游戏币。小明获得的游戏币上的数字可以让他前进或后退 $d_i$ 步,同时所有换取的游戏币在棋盘上都可以无限次使用来前进或后退。小蓝和小明分别选择棋盘上的不同位置,现在问你:小明至少需要花费多少价值的游戏币,以确保无论小蓝在棋盘上的哪个位置,小明都可以到达小蓝所在位置,如果无法实现这一点,则输出 -1 。
### 输入格式
输入的第一行,包含一个整数 $n$,代表游戏币的数量。
第二行包含 $n$ 个正整数 $d_1,d_2,\cdots,d_n$,代表游戏币上标注的数字。
第三行包含 $n$ 个正整数 $v_1,v_2,\cdots,v_n$,代表游戏币的票面价值。
### 输出格式
输出仅一行,包含一个正整数,表示小明花费最少游戏币的价值。
### 样例输入
```text
5
5 10 15 20 2
2 4 6 8 10
```
### 样例输出
```text
12
```
### 说明
在上面的样例中交换一张游戏币是不可能到达棋盘上所有位置的,例如只交换了第一张游戏币则只能到达 $5$ 的倍数的位置,最佳方式是交换第一张和第五张游戏币,可以到达棋盘任何位置且交换游戏币的总价值最小。
### 评测数据规模
对于 $50$% 的评测数据,$1\leq n \leq 10^2$,$1\leq d_i \leq 10^5$,$1\leq v_i \leq 10^5$。
对于 $100$% 的评测数据,$1\leq n \leq 10^2$,$1\leq d_i \leq 10^9$,$1\leq v_i \leq 10^5$。