算法
把问题的等式移一下,写成差的形式$\sum_{i=1}^{n}(a_i-b_i)*p_i > 0$
设$c_i = a_i - b_i$
也就是要让 $c_i > 0$的部分,乘完以后大于$c_i < 0$的部分
C++ 代码
#include<iostream>
using namespace std;
const int N = 110;
int a[N],b[N],c[N];
int main()
{
int n,suma,sumb;
suma = sumb = 0;
cin >> n;
for(int i=0;i<n;i++)
{
cin >> a[i];
}
for(int i=0;i<n;i++)
{
cin >> b[i];
c[i] = a[i] - b[i];
}
for(int i=0;i<n;i++)
{
if(c[i]>0)
suma += c[i];
else
sumb += abs(c[i]);
}
if(suma==0)
cout << -1 <<endl;
else
cout << sumb / suma + 1 <<endl;
return 0;
}