# Simon has given N ratios in the form of A and B that is represented as A/B.

Simon has given N ratios in the form of A and B that is represented as A/B. The values of A and B are represented as double data type values. The values of B are incorrect. The actual values of B are B+R. Simon know the actual sum of all the ratios that is available in variable K.

Note: The true values of B, represented as (B+R), are always greater than 0. Simon’s task is to determine the value of R.

Constraints:
1 <= N <= 1000
1 <= A <= 1000
|B| <= 1000
1 <= K <= 10^6

Input Format:
First line: Two integers N and col denoting the number of ratios and the value 2 respectively
Next N lines: Each line contains two double values A and B
Last line: A double value K denoting the sum of all the ratios

Output Format:
Print the value of R. Simon’s answer must contain an absolute or relative error of less than 10^-6.

```#include<iostream>
using namespace std;
double func(double arr[10][2],double r,int n)
{
double ans = 0;
for(int i = 0; i < n; i++)
{
ans+= arr[i][0]/(arr[i][1]+r);
}
return ans;
}
double maxi(double arr[10][2],int n)
{ double m=0;
for(int i=0;i<n;i++)
{
if(m<arr[i][1]){m=arr[i][1];}
}
return m;
}
int main()
{
int n,col;
cout<<"Enter the value of N and col(2 respectively):  ";
cin>>n>>col;
double arr[10][2];  //col == 2
cout<<"Enter the ratio in form A and B: ";
for (int i = 0; i < n; i++)
{
cin>>arr[i][0]>>arr[i][1];
}
double hi=maxi(arr,n),lo=0.0,mid=0.0;
double curr,k;
cout<<"Enter  the K value: ";
cin>>k;
while(hi-lo>1e-7)
{
mid=(hi+lo)/2;
curr=func(arr,mid,n);
if(curr<k)
{
lo = mid + 1e-7;
}
else
{
hi = mid - 1e-7;
}
}
printf("%.6f",lo);
return 0;
}
```

Explore