Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. #define TASKNAME "garland"
  4. using namespace std;
  5. typedef long double ld;
  6.  
  7. const int N = 1e5 + 7, ITER = 100;
  8.  
  9. ld h[N];
  10. ld ans = 0;
  11.  
  12. bool can(int n, ld h1, ld x) {
  13. ld prev = h1, cur = x;
  14. bool res = (cur > 0);
  15. for(int i = 2; i < n; i ++)
  16. {
  17. ld next = cur * 2.0 - prev + 2.0;
  18. if(!(next > 0))
  19. {
  20. res = 0;
  21. break;
  22. }
  23. prev = cur, cur = next;
  24. }
  25. if(res)
  26. ans = cur;
  27. return res;
  28. }
  29.  
  30. int32_t main() {
  31. srand(time(NULL));
  32. freopen(TASKNAME".in", "r", stdin);
  33. freopen(TASKNAME".out", "w", stdout);
  34. int n;ld h1;
  35. cin >> n >> h1;
  36. ld l = 0, r = h1;
  37. int it = 0;
  38. while(it < ITER)
  39. {
  40. it ++;
  41. ld m = (l + r) / 2;
  42. if(can(n, h1, m))
  43. r = m;
  44. else
  45. l = m;
  46. }
  47. cout << fixed << ans << endl;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement