Witam, mógłbym ktoś zerknąć na ten błąd? Ciągle otrzymuje błąd wykonania.
ideone9
Błąd wykonania jest spowodowany tym, że zgodnie z treścią i przykładem, między testami pojawia się pusta linia. Musisz spróbować ją ignorować. Nie jestem ekspertem od pythona ale coś takiego:
try:
clear = input()
except:
clear = 0
przed n -= 1 powinno dać radę.
Spróbuj też usunąć to spację na początku Twojego wyjścia, bo nie wiem jak sędzia na to zareaguje.
Próbowałem bez wyjątku, ale nie wiem czy w testach znajduje się na końcu pusta linia na końcu pliku. Jeśli nie, dzieje się to: https://ideone.com/DZKS7R9
Zmieniałem kod kilka razy, ale ciągle wyskakiwał błąd. Ostatecznie napisałem kod od nowa i wszystko działa jak należy. https://ideone.com/ZH6VFS20 (później usunę ten link)
Cześć mógłby ktoś zerknąć na mój kod https://ideone.com/cqYsSh12 wszystkie testy które sprawdzałem działają ideone też nie zwraca żadnego błędu.
czy ty chociaż sprawdziłeś wyniki, które twój program dał na ideone.com6 ? - czy też piszesz jedynie na podstawie wiary w dobre działanie programu ?
przeczytaj uważnie treść zadania a potem popatrz na wyniki programu
ok wiem na czy polega problem skupiłem się na przekazanych danych i ich sortowaniu a nie sprawdzeniu odległości od środka przekazanego pkt. jutro ponownie podejdę do tematu. Poprawiłem program aby sortował przekazane pkt. na podstawię odległości ale nadal nie ma AC nie wiem co jeszcze mogłem pominąć “odległość” w stdout wstawiłem dla sprawdzenia czy wszystko jest ok i usunąłem przed sprawdzeniem kodu
Zadanie zaliczone
Twój sposób liczenia odległości jest straszny.
Powiedz co dostaniesz dla danych
A 0 -1
B -2 0
C 0 -4
Nawiasem pisząc w tym zadaniu wystarczy operowanie na wartościach całkowitych.
Dlaczego? Tego już nie wyjaśnię
Nie ma to związku z faktem, że żadne dwa punkty nie leżą w jednej odległości
Gratuluję zaliczenia.
Dzięki korkirw poprawiłem a raczej skróciłem sposób liczenia bo rzeczywiście po wprowadzeniu zestawu danych który podałeś wychodziły głupoty. Zadanie zaliczone.
Nawiasem pisząc w tym zadaniu wystarczy operowanie na wartościach całkowitych. Dlaczego? Tego już nie wyjaśnię
Mogę się mylić ale wydaj mi się że chodzi Ci o zapis w zadaniu który mówi:
Żadne 2 punkty nie leżą w tej samej odległości od środka układu współrzędnych.
Cześć - potrzebuję pomocy przy znalezieniu błędu w kodzie (program napisany w Javie). Gdyż sam go nie mogę znaleźć - SPOJ odrzuca rozwiązanie, komplilator (IntelliJ) pokazuje wszystko poprawnie.
Trochę kontekstu - to zadanie już rozwiązałem jakiś czas wcześniej w C++, uczę się Javy aby mieć szansę na staż w jednej firmie. ‘‘Jedyne’’ co zrobiłem to ‘‘przetłumaczyłem’’ kod z C++ na Javę - pilnowałem aby endline’y były tam gdzie powinny, przerwy itp itd.
Przeprowadzałem testy na wielu zestawach danych i program sortuje za każdym razem poprawnie. Nie rozumiem z czym SPOJ ma problem niestety. Podam kod z C++ z którego ‘‘tłumaczyłem’’ (i który został zaakceptowany przez SPOJ) oraz kod w Javie, z którym SPOJ ma problem.
Z góry dziękuję za pomoc.
- Nie powinno się dołączać działających kodów (linków do takich kodów).
- Kod, na którym się wzorujesz, jest według mnie strasznie rozwleczony.
Mój kod ( w ogólnych założeniach dość podobny, też tworzę klasę Punkt) ma 70 (w dodatku sam zaimplementowałem sortowanie), a Twój ma ponad 150 linii.
A z całą pewnością nie można nazwać mojego kodu wzorcowymi, jest wiele lepszych rozwiązań. Ciekawy jestem co inni sądzą o tym kodzie.
Myślę, że łatwiej byłoby Ci przetłumaczyć na Javę prostszy kod.
Dzięki za odpowiedź
-
Masz rację, jednakże chciałem załączyć oba kody - może ktoś bardziej doświadczony ode mnie by coś wyłapał, coś co by wskazywało czemu jeden kod działa a drugi nie.
-
Zgodzę się przy rozwleczeniu, przy C++ trochę ''na ślepo" dawałem się prowadzić za rączkę przez Visual Studio który zachęcał do wypełniania konstruktorów, getterów i setterów poza klamrami klasy (głównie to tak rozwlekło kod). Ale jak SPOJ przyjmuje to już tak zostawiłem. Jak mi się będzie chciało to wrzucę tam bardziej kompaktowy kod. Także są settery niepotrzebne przy kodzie w C++ (przeciążony konstruktor już je ma, wystarczyłoby zamiast nowaX = x używać czegoś w stylu this.x = x jak zrobiłem w kodzie Java - jak się da).
Tak czy inaczej dzięki za sugestie.
EDIT: Postanowiłem kod skrócić już teraz, skrócił się do 100 linii.