1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class Program { static ulong EncodeDouble(double d) { long ieee = System.BitConverter.DoubleToInt64Bits(d); ulong widezero = 0; return ((ieee < 0)? widezero: ((~widezero) >> 1)) ^ (ulong)~ieee; } static void Test(double a, double b) { System.Console.WriteLine(a.ToString() + " <=> " + b.ToString() + (a.CompareTo(b) == EncodeDouble(a).CompareTo(EncodeDouble(b))? " : pass" : " : fail")); } static void Main() { Test(2, 3); Test(2, 20); Test(2, 0.5); Test(2, -2); Test(-2, -3); Test(-2, -20); Test(-2, -0.5); } } |
Y2xhc3MgUHJvZ3JhbQp7CiAgICBzdGF0aWMgdWxvbmcgRW5jb2RlRG91YmxlKGRvdWJsZSBkKQogICAgewogICAgICAgIGxvbmcgaWVlZSA9IFN5c3RlbS5CaXRDb252ZXJ0ZXIuRG91YmxlVG9JbnQ2NEJpdHMoZCk7CiAgICAgICAgdWxvbmcgd2lkZXplcm8gPSAwOwogICAgICAgIHJldHVybiAoKGllZWUgPCAwKT8gd2lkZXplcm86ICgofndpZGV6ZXJvKSA+PiAxKSkgXiAodWxvbmcpfmllZWU7CiAgICB9CgogICAgc3RhdGljIHZvaWQgVGVzdChkb3VibGUgYSwgZG91YmxlIGIpCiAgICB7CiAgICAgICAgU3lzdGVtLkNvbnNvbGUuV3JpdGVMaW5lKGEuVG9TdHJpbmcoKSArICIgPD0+ICIgKyBiLlRvU3RyaW5nKCkgKyAoYS5Db21wYXJlVG8oYikgPT0gRW5jb2RlRG91YmxlKGEpLkNvbXBhcmVUbyhFbmNvZGVEb3VibGUoYikpPyAiIDogcGFzcyIgOiAiIDogZmFpbCIpKTsKICAgIH0KCiAgICBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsKICAgICAgICBUZXN0KDIsIDMpOwogICAgICAgIFRlc3QoMiwgMjApOwogICAgICAgIFRlc3QoMiwgMC41KTsKICAgICAgICBUZXN0KDIsIC0yKTsKICAgICAgICBUZXN0KC0yLCAtMyk7CiAgICAgICAgVGVzdCgtMiwgLTIwKTsKICAgICAgICBUZXN0KC0yLCAtMC41KTsKICAgIH0KfQ==
-
upload with new input
-
result: Success time: 0.01s memory: 38000 kB returned value: 0
2 <=> 3 : pass 2 <=> 20 : pass 2 <=> 0.5 : pass 2 <=> -2 : pass -2 <=> -3 : pass -2 <=> -20 : pass -2 <=> -0.5 : pass


