#include <math.h>
#include <iostream>

#define dbg(x) do { volatile auto v = x; std::cout << #x << ": " << v << std::endl; } while (0)

template<typename T> long long to_ll(T x) {
  volatile T y = x;
  return (long long)y;
}

int main() {
  volatile double x = 302500001100000001;
  volatile long double y = 302500001100000001;
  std::cout << std::fixed;
  std::cout.precision(12);
  dbg(x);
  dbg(y);
  dbg(sqrt(x));
  dbg(sqrt(y));
  dbg(to_ll(sqrt(x)));
  dbg(to_ll(sqrt(y)));
  dbg(sqrtl(x));
  dbg(sqrtl(y));
  dbg(to_ll(sqrtl(x)));
  dbg(to_ll(sqrtl(y)));
  return 0;
}
