1 / 6
Jul 2021

Standardowy problem, coś jest nie tak w kodzie, ale nie wiem co. Przeczytałem kod już z 10 razy i nie mam pojęcia, co może być nie tak. Kod jest w Lua, ale zrozumienie go nie powinno sprawić problemu (zwłaszcza, jeśli wywala się na jakimś szczególnym przypadku testowym). Kod: https://ideone.com/aJ6BEO10

  • created

    Jul '21
  • last reply

    Jul '21
  • 5

    replies

  • 549

    views

  • 3

    users

  • 3

    likes

  • 2

    links

Pobieżnie porównałem wyniki z moim kodem (AC) i jeżeli chodzi o obliczenia to są identyczne, jedyna różnica (w Twoim rozwiązaniu) to dodatkowa spacja za ostatnią liczbą w wierszu.

if math.sqrt((x - building[1])^2 + (y - building[2])^2) <= radius then

Nie wiem, jak Lua radzi sobie z liczbami zmiennoprzecinkowymi, ale z tym jest często problem.
Sprawdziłbym:

if ((x - building[1])^2 + (y - building[2])^2) <= radius*radius then

tak, żeby w ogóle nie korzystać ze zmiennoprzecinkowców

Poprawione obie rzeczy i niestety nadal WA. Obecny kod: https://ideone.com/DcC9Sx5

Dzięki zwłaszcza za wskazówkę o niekorzystaniu z pierwiastków, to pewnie jest wymagane w wielu zadaniach, a ja kompletnie o tym nie wiedziałem. :slight_smile:

Nie jest to konieczne, ale przydatne. Jeśli tylko się da, należy unikać operowania na liczbach zmiennoprzecinkowych.

A twój program nie obsługuje przypadków, jeśli dwa budynki mają taki sam numer. Nigdzie w treści zadania nie powiedziano, że numery są unikalne.

A twój program nie obsługuje przypadków, jeśli dwa budynki mają taki sam numer. Nigdzie w treści zadania nie powiedziano, że numery są unikalne.

Dzięki, to było to! Faktycznie są powtarzalne numery, co zweryfikowałem wywołując NZEC jeśli był powtórzony numer.