102 / 133
Apr 2020

Witajcie, napisałem kod do tego zadania, gdy wrzucam do sędziego pokazuje, że jest błędna odpowiedź. Wszystkie “trudne” przypadki podane we wcześniejszych komentarzach do tego postu wkleiłem i odpowiedzi wchodzą dobre Czy jest ktoś wstanie dać jakąś wskazówkę co tutaj jest źle?
Problem rozwiązany

Na tym teście co podałeś:
in:
1
3
A 12 -12
C 13 12
B 11 11
wychodzi mi out:
B 11 11
C 13 12
A 12 -12
bo odległość tych punktów od (1,1) jest równa:
A 17.0294
C 16.2788
B 14.1421

Pytanie właściwie retoryczne…
Dlaczego liczysz odległość od punktu (1,1)?
Przeczytaj i przemyśl treść zadania i polecenie

1 month later

Witam. Próbuję opanować C# i męczę się z tym zadaniem. Testowałem program na wszystkich możliwych danych wejściowych. Wydaje mi się że sortuje ok. Błąd może być w tej linii oddzielającej zestawy danych…
https://ideone.com/2DLvpA5 - to mój kod.

Tak. Kolejne testy oddzielone są jednym pustym wierszem.

  1. Obliczanie odległości punktu jest nieprawidłowe:
    Wejście
    1
    3
    A 0 0
    C 1 6
    B 3 -4
    Wyjście:
    A 0 0
    B 3 -4
    C 1 6

Ok. Racja. Mnożyłem przez siebie wartości bezwzględne x i y. Teraz zmieniłem to na dodawanie. Wydaje mi się że to wystarczy i nie trzeba liczyć dokładnej odległości wyciągając pierwiastek (z pitagorasa w sensie). Tak czy inaczej kod dalej nie przechodzi.
https://ideone.com/2sxLx03 - poprawiony kod.

Nie wystarczy. Jak ma być sortowanie według odległości w METRYCE EUKLIDESOWEJ to takiej należy użyć a nie wymyślać własnych wynalazków (nawet jeśli one są również metrykami). Nawiasem mówiąc nie rozumiem po co kombinujesz z dziwnymi wynalazkami zamiast robić po prostu to co jest podane w zadaniu.

Kolejne testy oddzielone są jednym pustym wierszem

chodzi o wejście, bo na wyjsciu jest juz pusta linia miedzy wynikami kolejnych testow.

2 months later

Czesc, moglby ktos podpowiedziec jak ugryzc unikalnosc dla zmiennej ‘nazwa’ dla kazdego testu oraz jej wielkosc max 10 znakow? Glowie sie od jakeigos czas, ale nie moge znalezc sensownego wyjscia.
Jedyne co mi chodzi po glowie:

  1. to wywalenie programu po powtorzeniu nazwy, badz nadaniu jej wiekszej ilosci znakow niz 10
  2. usuwanie danych wpisanych niepoprawnie z trescia zadania i powrot do linijki

Bylbym wdzieczny za podpowiedz!

Sedzia (jest automatem) testujacym programy zestawami testow zgodnymi z trescia zadania.
Wszystko co opisujesz jest niepotrzebne.

Można użyć mapy do sprawdzania, czy nazwa nie jest użyta (względnie iterować po tablicy), i zwykłego porównania długości stringa (za pomocą metody length() ) z liczbą 10. Do zakończenia programu służy return 0 albo funkcja exit() z cstdlib. Jednakże tak jak wyżej, nie jest to potrzebne.

Dzieki za wskazowki!
Ale po przeczytaniu tresci zadania “ze zrozumieniem” wyciagnalem wniosek, iz moj program pokazuje posortowane punkty zaraz po ich wpisaniu dla danego testu.
Rozumiem, ze w pierwszej kolejnosci powinien przyjac wszystkie testy i wszystkie punkty dla kazdego testu, a pozniej odpowiednio posortowac punkty z kazdego testu.

Nie, nie jest to konieczne. Sędzia to maszyna i odróżnia strumienie wejścia/wyjścia, tak że można wypluć dane, gdy tylko będą gotowe, osobno po przyjęciu każdego testu