Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define prm(x) x.begin(), x.end()
- #define srt(x) sort(prm(x))
- #define rvs(x) reverse(prm(x))
- using namespace std;
- using ll = long long;
- using ld = long double;
- int main()
- {
- cout << setprecision(6);
- cout << fixed;
- const long double EPS = 1e-7;
- ld l = -1e9, r = 1e9, m;
- ll t, g;
- cin >> t >> g;
- vector<pair<ll, ll>> v(t);
- for (auto &cl : v)
- {
- cin >> cl.first >> cl.second;
- }
- while (abs(l - r) > EPS)
- {
- m = l + (r - l) / 2;
- ld sum = 0;
- for (auto &cl : v)
- {
- if (cl.second + m <=0){
- sum=1e9;
- break;
- }
- sum += cl.first / (cl.second + m);
- }
- if (g < sum)
- {
- l = m;
- }
- else
- {
- r = m;
- }
- }
- cout << m << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement