Advertisement
xT30x

Untitled

Jan 29th, 2023
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define prm(x) x.begin(), x.end()
  4. #define srt(x) sort(prm(x))
  5. #define rvs(x) reverse(prm(x))
  6.  
  7. using namespace std;
  8. using ll = long long;
  9. using ld = long double;
  10.  
  11. int main()
  12. {
  13.     cout << setprecision(6);
  14.     cout << fixed;
  15.     const long double EPS = 1e-7;
  16.     ld l = -1e9, r = 1e9, m;
  17.     ll t, g;
  18.     cin >> t >> g;
  19.     vector<pair<ll, ll>> v(t);
  20.     for (auto &cl : v)
  21.     {
  22.         cin >> cl.first >> cl.second;
  23.     }
  24.     while (abs(l - r) > EPS)
  25.     {
  26.         m = l + (r - l) / 2;
  27.         ld sum = 0;
  28.         for (auto &cl : v)
  29.         {
  30.             if (cl.second + m <=0){
  31.                 sum=1e9;
  32.                 break;
  33.             }
  34.             sum += cl.first / (cl.second + m);
  35.         }
  36.         if (g < sum)
  37.         {
  38.             l = m;
  39.         }
  40.         else
  41.         {
  42.             r = m;
  43.         }
  44.     }
  45.     cout << m << endl;
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement