Блог пользователя hriss95

Автор hriss95, 11 лет назад, По-английски

Hello to everybody! I've been solving 305B - Continued Fractions and decided to just calculate the fractions. I know it's not the correct way, but I just wanted try in see what's going to happen, because as we all know — when there is precision, it's always interesting :D . So, I wrote a solution and indeed an interesting thing occurred. When I saw the test case on which my solution failed, I immediately copied it and tried it on my computer and it actually produced the correct answer. So I cheated on this test in order to see what's going to happen on the others. The exact same thing happened and that's why I'm writing this post. Does anybody have an idea why this happens. I think that it would be good for all of us who are not familiar with dealing with such situations if we discuss it here

Here is my submission: 4039640

PS: I tried to use some eps values in case of some small error but it still didn't work

  • Проголосовать: нравится
  • -3
  • Проголосовать: не нравится

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +6 Проголосовать: не нравится

It's not good to write double1 == double2;

I'd replace ending with:

if (fabs(d - pq) < 1e-9)

And it works on test 4.

UPD: Ok, I cant find eps. It is very close to be equal and not equal for this values, some eps say NO on YES and vice-versa.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Yes, I'm familiar with this, but now it gets WA#5 and if I make the error smaller it passes test 5 and gets WA#6. Without the error it passes both these tests. The interesting part is that on my machine I get the correct answers actually with double1 == double2. Just to say by the way... I can type the right solution for this one, but I think this discussion would be beneficial especially if we find the reason.

    • »
      »
      »
      11 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

      Basically it is depend on compiler and your machine, if they differ then double representation may be differ too.

      P.S. I mean differ from codeforces or another judge system.