Witam sędzia akceptuje, oto kod
created
last reply
- 10
replies
- 1.4k
views
- 4
users
- 1
like
- 6
links
Witam sędzia akceptuje, oto kod
Nie wiem, czy ktoś Ci pomoże. Zadanie jest wredne. Robiłem je dawno temu i pamiętam, że nie jeden zachwalany gotowiec z sieci / sposób implementacji dał WA / TLE.
Osobiście wykorzystałem je do zapoznania się z ideami stosowanymi przez osoby zawodowo trzaskające zadania algorytmiczne i rozwiązałem wykorzystując materiały linkowane w temacie: Nauka programowania i nie tylko -> 10 darmowych stron. Link do strony, na której był gotowiec, dalej tam jest (ale nie zagwarantuję, że kod wciąż będzie dostępny).
W moim zgłoszeniu AC jest nawet komentarz “NAJLEPSZE W CALYM NECIE” więc chyba faktycznie warto to przeanalizować, a całkowicie samodzielne zaklepanie algorytmu zostawić na inną okazję (a tych pewnie nie braknie), ale oczywiście to tylko moja opinia.
@jedrzejd To co napisałeś to punkt patrzenia matematyki. Jednak podejrzewam, że mariuszowi chodziło o coś innego:
Mam zmienną 1.1
Drugą zmienną równą -0.9
Trzecią 0.2
Jaki jest wynik działania 1.1 + (-0.9) - 0.2? Dla matematyki jest to 0. Dla procesora:
sprawdź sam13
A przestawiając działania (co nie powinno wpłynąć na wynik) możemy otrzymać:
całkiem inny5
Czyli: operacje zmiennoprzecinkowe nie są dokładne (jak w matematyce), a co za tym idzie można wyjść poza granice rozsądnego wyniku.
Edit: O a jednak chodziło o zakres wartości typów danych
chyba nie przeczytałeś początkowych rozdziałów z podręcznika C/C++
one wydają się całkowicie nieistotne, ale potem niektórzy się dziwią, że komputer daje inny wynik, niż oczekują
zamieściłeś przykład, to teraz pomnóż wszystkie te współrzędne przez 10000 (10 tysięcy) i zobacz wynik - a potem wróć do podręcznika - poczytaj o typach zmiennych, ich zakresach, rzutowaniach i automatycznej konwersji
prawdę mówiąc dziwię się, że ktoś kto implementuje całkiem trudny algorytm nie zna podstaw programowania (chyba że obecnie te początkowe rozdziały usunięto z podręczników, dawno nie zaglądałem do jakiegokolwiek podręcznika programowania)
Bo coś mało cyfr wyświetla, różnica siedzi o wiele dalej. Tak samo będzie jak dodasz jakąś małą liczbę: sprawdź8, a pomyłka była na pozycji e^-17
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 153 | Jul '24 |
FR_20_02 - Poszukiwacze skarbów - Błąd w testach? | Zbiór zadań | 1 | 75 | Apr 2 |
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 187 | Jun '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 125 | Feb 1 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 127 | Jul '24 |