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

Автор HolyInq, 12 лет назад, По-русски

Давно не даёт спокойно спать эта задача. Ещё 3 года назад придумал элегантное решение без разбора случаев, но оно получает ВА28.

//Здесь был код, в котором забывалась проверка на пересечение зонта и газона.

UPD. Ещё раз спасибо всем, в особенности it4.kp. Зашло.

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

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

Если человек стоит близко к углу(то есть к двум краям) у тебя не вычтется что-то 2 раза?(упс, такого видимо не бывает)

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

    Вроде так и надо. Будёт два "потока" за края поля.

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

Может какие-нибудь траблы с точностью?

Типа 1-a*a ~ 0, но чуть меньше и поэтому корень не извлекся, или вычел все и ответ выводится как -0.000 и еще в таком же духе.

Или может ответ большой и поэтому print выводит экспотенциальную форму или мало знаков после запятой?

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

    Первое вроде не может быть. Никак не получится целиком закрыть прямоугольник с целыми длинами сторон непересекающимися окружностями с радиусом 1.
    Ответ сверху можно оценить числом 10002*10002. Вряд ли тут нужна экспоненциальная форма.

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

      У меня на локальной машине

      out.print(100000000.0); выводит 1.0E8

      UPD: видимо все же не в этом дело ибо с форматом также получилось

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

Могу помочь АЦ-решением для написания стресс-теста, если он здесь конечно поможет

UPD: Посмотрел код, тоже сначала ловил WA28. Вроде единственное, что исправил — сделал некую проверку, что точки лежат непосредственно в прямоугольнике.

»
12 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится

А что будет если x=0.5 y=INF?

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

Ошибка точно не в этом, но я бы никогда не осмелился писать double w = nextDouble(), l = nextDouble(); имхо порядок вызовов может быть любым, я не прав? Вопрос к знатокам C++ и Java, как будет там и там?

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

    в C++ — UB.

    В Java все нормально(по крайней мере так пишу, ни разу не валилось), да и в целом в Java все сделано, чтобы было поменьше UB