To jest tylko moje podejrzenie, wywala się na 5.
Nigdy nie widziałem aby pojawiała się 6.
Rozumiem, że 0 1 3 nie jest wyzwaniem ale tylko to mam jako wynik pozytywny. Więc poprawność opieram na tym.
Na swoje potrzeby rozrysowałem sobie kilka innych skrajnych przypadków i wg mnie wyniki są w moim rozumieniu poprawne.
Nic innego nie przychodzi mi do głowy
A może po prostu jest 5 testów do zadania?
Błąd. Opieranie się na przykładowym wejściu jest na ogół złe. Cytat z https://warsztatywww.wdfiles.com/local--files/drogowskaz-pasjonata%3Aolimpiady/Przygotowanie-do-OI.pdf7
Możesz źle rozumieć lub źle implementować Jeżeli chcesz to wstaw kod. Jeżeli (jeszcze) nie chcesz - możesz przedstawić swój algorytm słownie lub jako listę kroków.
IN
0 0 2
Dwie pierwsze cyfry określają środek układu do którego się odnoszę a promień określa granicę w jakiej się poruszam.
wczytując poszczególne punkty wyliczam promień od środka jako przekątną trójkąta i zliczam ich wystąpienia. Jeżeli podczas kolejnego wczytywania nie pojawi się mniejszy promień to wynik daję na konsolę, w przeciwnym wypadku zliczam ponownie wystąpienia itd.
Nie bawię się w żadne tablice. Oczywiście na wejściu zamiast 0 0 może być 3 3.
Pierwszy błąd, jeżeli faktycznie liczysz przekątną tzn. liczysz pierwiastek i wprowadzasz błąd obliczeń zmiennoprzecinkowych zamiast operować na sumie kwadratów. Drugi, jeżeli trzymasz to w float.
Pierwszy błąd, jeżeli nie liczysz pierwiastka, ale za to używasz niewłaściwego typu danych (chyba najbezpieczniej od razu robić wszystko na long long int).
Ta część brzmi podejrzanie. Załóżmy in 0 0 10. Wczytujesz współrzędne, np. 5 i 5. Potem kolejne - 10 i 10. W kolejnym (drugim, tj. 10 i 10) wczytaniu nie pojawił się mniejszy promień więc wynik dajesz na konsolę pomimo faktu, że potem masz np. 3 i 3 kilka razy? Poza tym jak zliczasz ponownie wystąpienia, jeżeli nigdzie ich nie zapamiętujesz (np. w tablicy)?
STANDARTOWA RADA:
- Przeczytaj dokładnie treść zadania.
- Zastanów się jak to zrobić.
- Gdy nie wiesz lub gdy wydaje Ci się, że wiesz a jednak nadal WA go to 1.
- Gdy przypadkowo dostaniesz AC, pomyś, jak poprawić kod [refaktoring] a więc warto [trzeba] go to 1.
No i czy kto[ś] [np autor zadania] mówił coś, że lista jest w jakikolwiek sposób posortowana? Więc bezpieczniej zqałożyć, że jednak nie. Jak umiesz z takiego typu problemami rozprawiać się bez tablic czy ekwiwalentu - vektora[ów] to gratuluję umiejętności.
Dziękuję za trochę konkretów.
Do zadanka podejdę jeszcze raz.
Faktycznie mogę robić błąd w sposobie liczenia promienia i może to mieć znaczenie.
Dodam, że pamiętając moje poprzednie potyczki ze spoja, nie zadowoliłem się jedynie danymi testowymi ale rozrysowałem sobie kilkanaście skrajnych przypadków i wynik był taki jakiego się spodziewałem.
Uwaga co do sortowania również jest cenna. Oczywiście czytając zadanie zastanawiałem się nad tym czy może wystąpić przypadek typu:
IN 0 0 2
10
0 1
2 1
0 1
2 1
0 1
itd.
Czytając wielokrotnie treść zadania założyłem, że nie.
Bezpieczniej założyć mniej korzystny wariant. W przeciwnym wypadku, musisz szukać błędu dodatkowo w założeniach. A przecież to nie złośliwość autora, jak mógłbyś sądzić. Po prostu dane do zadań są najczęściej generowane automatycznie - pseudolosowo. W tym zadaniu zapewne tak samo - nie wiem, ale zrobiłem takie [bezpieczne] założenie.
Ale możliwe, że dla swojego błędnego założenia i dlatego poprawne wyniki.
Dodatkowo, czytając opis twojego rozwiązania, mam wątpliwości, czy masz poprawny kod nawet gdyby dane były posortowane - zawsze można je wczytać i posortować wstępnie.
Może ja nie rozumiem opisu, lub tTy opisujesz niejasno swoje rozwiązanie?
Był już na tym forum pewien Pan, który w imię swojej wizji samoedukacji wklejał nic nie wnoszące do tematu kody, których działania nie umiał wytłumaczyć, nie był w stanie opisać błędów w swojej implementacji, nie był w stanie się z nikim porozumieć i oczekiwał pomocy wróżek, które naprawią błąd w kodzie “bo najpierw wyświetla się to a lepiej żeby tamto chociaż w sumie to”.
Nie chciałbym Cię w żaden sposób deprymować ani tym bardziej porównywać do tamtego Pana, którego po udowodnieniu mu, iż źle robi, nieco “poniosło”. Nie chcę tego robić tym bardziej, że przecież znalazłeś błąd w kodzie i walczysz z konkretnym problemem (zadaniem) a nie wiatrakami własnego autorstwa, co oczywiście jest mocno na plus.
Walczysz jednak z tym zadaniem od dawna. Może lepiej zrobić inne a potem wrócić do tego? A może lepiej faktycznie jak radzi @mariusz193 pokazać kod? Jeżeli da się go przeczytać, ale jego estetyka dorównuje poprawności to przecież nic złego. Prawdopodobnie ktoś powie Ci co konkretnie możesz poprawić, zasugeruje metodę testowania, pokaże swój kod dający AC (to raczej na PW, ale jest taka możliwość), podeśle tematy dotyczące formatowania kodu, …
Jeżeli uważasz, że samemu dasz radę to oczywiście ok, ale na prawdę ludzie na forum są (powinni być? ) chętni do pomocy. Może dzięki podpowiedzi, a w ostateczności nawet gotowcowi najdzie Cię olśnienie, które pomoże nie tylko w tym, ale też w innych zadaniach? A może rozwiążesz to zadanie samemu swoim być może przekombinowanym sposobem i w efekcie na innym trudniejszym zadaniu się wyłożysz? A może przesadzam i poradzisz sobie lepiej i szybciej bez forum? Oczywiście tylko Ty - znając swoje możliwości - możesz wiedzieć, co jest najbardziej prawdopodobne
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 191 | Feb 1 |
FR_20_02 - Poszukiwacze skarbów - Błąd w testach? | Zbiór zadań | 1 | 154 | Apr 2 |
SPOJ.com - Problem ZABAWA pl.spoj.com | Zbiór zadań | 6 | 135 | Jun 23 |