fork download
  1. #include <bits/stdc++.h>
  2. #include <iostream>
  3. #include <set>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <string>
  7. #include <cmath>
  8. using namespace std;
  9. #define ll long long
  10. #define _CRT_SECURE_NO_WARNINGS
  11. #define endl '\n'
  12. #define pb push_back
  13. #define f first
  14. #define s second
  15. #define V vector<int>
  16. #define Vl vector<ll>
  17. #define pll pair<ll,ll>
  18. #define Vp vector<pair<int,int>>
  19. #define all(v) v.begin(),v.end()
  20. #define mid(s,e) (s+(e-s)/2)
  21. #define tcase() ll t,n; cin>>t;n=t; while(t--)
  22. #define eb emplace_back
  23. #define ull unsigned long long
  24. #define minimize INT_MAX
  25. #define maximize INT_MIN
  26. #define dsort(a) sort(a.begin(), a.end(), greater<int>())
  27. #define asort(a) sort(a.begin(), a.end())
  28. #define fr(i,n) for(ll i=0; i<n; i++)
  29. #define fr1(i,n) for(ll i=1; i<=n; i++)
  30. #define vp(n) vector<pair<int,int>>v(n);
  31. #define si set <int>
  32. #define cin(v) for (auto & i : v) cin >> i
  33.  
  34. void fast(){
  35. ios_base::sync_with_stdio(0);
  36. cin.tie(0);
  37. cout.tie(0);
  38. //cout.setf(ios::fixed);
  39. //cout.precision(20);
  40. #ifndef _offline
  41. // freopen("mex.in", "r", stdin);
  42. //freopen("output.txt", "w", stdout);
  43. #endif
  44. }
  45.  
  46.  
  47. //void HaXn1() {
  48. // double c, time;
  49. // cin >> c >> time;
  50. // double l = 1, r = 1e18, ans = 1.0;
  51. // auto valid = [&](double md) {
  52. // double val = (c * md * log2(md));
  53. // return (val <= time);
  54. // };
  55. // int t = 100;
  56. // while (t--) {
  57. // double md = (l + r) / 2.0;
  58. // if (valid(md)) {
  59. // ans = md;
  60. // l = md;
  61. // } else {
  62. // r = md;
  63. // }
  64. // }
  65. // cout << fixed << setprecision(6) << ans << endl;
  66. //}
  67.  
  68.  
  69. void HaXn() {
  70. double c, time; cin >> c >> time;
  71. double l =1, r= 1e18, ans = 1.0;
  72. auto valid = [&] (double md){
  73. double val = (c * md * log2(md));
  74. return(val <= time);
  75. };
  76. while (l<=r){
  77. double md = (l+r)/2;
  78. if (valid(md)){
  79. ans = md;
  80. l = md+1;
  81. }else{
  82. r = md-1;
  83. }
  84. }
  85. cout << fixed << setprecision(6) << ans << endl;
  86.  
  87. }
  88.  
  89.  
  90. int32_t main() {
  91. fast();
  92. int t =1;
  93. //cin >> t;
  94. while (t--) {
  95. HaXn();
  96. }
  97. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
1.000000