移动石头
题号:NC207202
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有n堆石头排成一排,标号为0到n-1,第i堆石头有a[i]个石头
每一步你可以从某一堆取一个石头放到相邻的石头堆里
请问需要多少步可以将a数组变成b数组


输入描述:

第一行先输入一个整数n (1 ≤ n≤ 50)

第二行输入n个数ai
第三行输入n个数bi

0 ≤ ai, bi ≤ 106

输出描述:

输出一个整数表示最少的操作步数,如果无法将a数组变成b数组,输出-1
示例1

输入

复制
2
1 2
2 1

输出

复制
1
示例2

输入

复制
2
10 0
0 10

输出

复制
10
示例3

输入

复制
10
1 2 3 4 5 6 7 8 9 10
8 5 4 7 9 6 3 2 1 4

输出

复制
-1

备注:

7