给定两个长度为 最小的值(秋季每日一题 5)_数组最小的值(秋季每日一题 5)_数组_02 数组 最小的值(秋季每日一题 5)_数组_03最小的值(秋季每日一题 5)_数组_04

请你构造一个长度为 最小的值(秋季每日一题 5)_数组 的正整数数组 最小的值(秋季每日一题 5)_取整_06

要求 最小的值(秋季每日一题 5)_贪心_07

此外,最小的值(秋季每日一题 5)_i++_08

输出最小可能值。

输入格式
第一行包含整数 最小的值(秋季每日一题 5)_数组

第二行包含 最小的值(秋季每日一题 5)_数组 个整数 最小的值(秋季每日一题 5)_数组_03

第三行包含 最小的值(秋季每日一题 5)_数组 个整数 最小的值(秋季每日一题 5)_数组_04

输出格式
输出 最小的值(秋季每日一题 5)_i++_08

如果不存在满足条件的数组 最小的值(秋季每日一题 5)_贪心_15,则输出 最小的值(秋季每日一题 5)_取整_16

数据范围
最小的值(秋季每日一题 5)_贪心_17
最小的值(秋季每日一题 5)_数组_18
输入样例1:

5
1 1 1 0 0
0 1 1 1 1

输出样例1:

3

输入样例2:

3
0 0 0
0 0 0

输出样例2:

-1

输入样例3:

4
1 1 1 1
1 1 1 1

输出样例3:

-1

输入样例4:

9
1 0 0 0 0 0 0 0 1
0 1 1 0 1 1 1 1 0

输出样例4:

4

/*
1)a1*p1+a2*p2+...+an*pn > b1*p1+b2*p2+...+bn*pn
当ai==bi时,pi可以取任何值(但是为了使max(pi)最小,则pi取1)
当ai < bi时,(ai-bi)*pi < 0,此时应该使pi=1,次数为x
当ai > bi时,(ai-bi)*pi > 0,(此时ai=1,bi=-1),次数为y
为了满足1式,t*y > x,t >= (x+1)/y,即对(x+1)/y上取整数,也就是
对(x+1+y-1)/y下取整
*/
#include<iostream>

using namespace std;

const int N = 110;

int a[N], b[N];

int main(){

int n;
cin >> n;

for(int i = 0; i < n; i++) cin >> a[i];
for(int i = 0; i < n; i++) cin >> b[i];

int x = 0, y = 0;
for(int i = 0; i < n; i++){

if(a[i] < b[i]) x++;
else if(a[i] > b[i]) y++;
}

if(!y) puts("-1");
else cout << (x + y) / y << endl;

return 0;
}