fork download
  1. #include <bits/stdc++.h>
  2. // v.erase( unique(all(v)) , v.end() ) -----> removes duplicates and resizes the vector as so
  3. using namespace std;
  4. #define ll long long
  5. #define lld long double
  6. const lld pi = 3.14159265358979323846;
  7. #define pb push_back
  8. #define pf push_front
  9. #define all(a) a.begin(),a.end()
  10. #define rall(a) a.rbegin(),a.rend()
  11. #define getunique(v) {sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());}
  12. constexpr int mod = (int)(1e9+7);
  13. #define log(x) (31^__builtin_clz(x)) // Easily calculate log2 on GNU G++ compilers
  14. const lld eps=1e-12;
  15.  
  16. int main()
  17. {ios_base::sync_with_stdio(0),cin.tie(0);
  18. lld c;cin>>c;
  19. lld x=0;
  20. lld en=c*c;lld st=0;
  21. while(en>=st){
  22. lld mid=en-(en-st)/2;
  23. if(mid*mid+sqrt(mid)<=c){
  24. x=mid;
  25. st=mid+eps;continue;
  26. }
  27. en=mid-eps;
  28. }
  29. cout<<setprecision(16)<<fixed;
  30. cout<<x<<'\n';
  31.  
  32.  
  33.  
  34.  
  35. return 0;
  36. }
  37. /*
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. */
Success #stdin #stdout 0.01s 5432KB
stdin
Standard input is empty
stdout
0.0000000000000000