Czy ma ktoś pomysł gdzie jest błąd?
5
1 ? daje 10
2 ?? daje 90
2 ?2 daje 9
4 1?1? daje 100
4 1234 daje 0
Poprawiłem wychodzące wyniki zgodnie z sugestią i nadal SPOJ twierdzi że mam złe wyniki. Wszystko wygląda sensownie.
2016-09-16 14:13:36 @tomektomek
Czy każdy ciag n znakow posiada znak zapytania? Jeśli nie to czy dla liczby nie posiadajacej znakow zapytania program powinien wypisac 0 czy 1? Przeczytalem zadanie i na początku myslalem ze to nonens ale teraz nie jestem pewny bo ciagle mam WA.
co jest źle?
https://ideone.com/H8buzs54
No jak widać w różnych zadaniach jest to różnie przyjęte bo w zadaniu https://pl.spoj.com/problems/FR_07_01/6 przyjęto że zera wiodące są jak najbardziej możliwe. No i mamy podwójne standardy. Tylko kiedy którego się trzymać to już nikt nie napisał…
A prywatnie też się tak wszystkiego czepiasz czy tylko na forum spoja? Bo jeśli też to współczuje ludziom w Twoim otoczeniu.
Naprawdę trzeba Ci tłumaczyć, że w https://pl.spoj.com/problems/FR_07_01/8 liczby na wejściu mogą zaczynać się od zera, bo cyfry są podane w odwrotnej kolejności a liczby normalnie mogą kończyć się zerami, podczas gdy w https://pl.spoj.com/problems/AL_10_01/6 cyfry nie są odwrócone?
W obu przypadkach liczby zgadzają się z zapisem matematycznym, gdzie wiodące zera się pomija.
I gdzie się podziało?
Dziękuję za wyjaśnienie. O wiodących zerach nie będę dyskutował bo nie chcę być postrzegany za forumowego trolla
Liczb zwykle nie pisze się z zerami wiodącymi, ale można to w ogóle czynić i tylko czasami się tak robi.
Ów czasami zostało wykorzystane w zadaniu FR_07_01 - tam uznaliśmy, że mogą być zera wiodące.
W tym zadaniu zostało uznane (tak jak jest to zazwyczaj), że nie piszemy zer wiodących.
Co w tym dziwnego?
W skrócie: mogę jeść frytki z ketchupem, ale nie muszę.
Dziś nie jadłem frytek z ketchupem
Wczoraj frytki jadłem z ketchupem
Czy jest to “podwójny standard”? Tak.
Czy jest w tym jakiś problem? Nie.
W jednym zadaniu autor raz dał możliwość na wystąpienie zer wiodących, w innym nie. Nie ma z tym żadnego problemu gdyż zera wiodące występować w ogóle mogą, ale nie muszą.
Na szczęście pomysł opłaty za wysyłanie zgłoszeń (https://pl.spoj.com/problems/MBPROB01/9) nie został wdrożony więc możesz wysyłać tyle zgłoszeń ile tylko zechcesz testując doprawdy najdziksze przypadki typu “a co jeżeli autor każe mi uporać się z liczbą mającą kilkaset tryliardów cyfr”. Na polskim SPOJu nie ma żadnego problemu z wysyłaniem zgłoszeń ile wlezie. Możesz nawet nie zapisywać kolejnych modyfikacji kodu na lokalnym komputerze tylko od co je wysyłać nawet wiedząc, że kod da WA albo się nie skompiluje, a potem w innym miejscu i na innym kompie wejść na SPOJa i bawić się aktualnym kodem. Sam tak często robię gdy mam “fazę na SPOJa” i rozwiązuję zadania w różnych miejscach.
Nim zarzucisz “no tak, SPOJ to zgadywanie rozwiązań i chwilowych zamysłów autorów zadań; to gorsze niż matura z polskiego”:
- pozostaje w mocy to co wielokrotnie pisałem w innych tematach
- pozostaje w mocy to co inni wielokrotnie pisali nie tylko w innych tematach
- takie podejście jak najbardziej jest profesjonalne a nawet często stosowane na poważnych konkursach, gdy np. jedyna trudność polega na dobrym zaimplementowaniu haszowania
- podejście w stylu “wstrzel się w klucz” doczekało się całych teorii i książek głównie pod hasłem “algorytmy randomizowane” (ewentualnie “algorytmy probabilistyczne”)
- takie podejście otwiera zupełnie nowe drogi do rozwiązywania zadań z sędzią dokładnym jeżeli nie jest narzucony limit zgłoszeń, a tak się składa, że “exploitowanie” zadań hardcodowaniem wyników obliczeń w kodzie czy randomizacją jest jak najbardziej metodą ich rozwiązywania, nieraz jedyną możliwą
- (najważniejsze) wielokrotne wysyłanie zgłoszeń i naginanie założeń autora pozwala lepiej zrozumieć treść zadania i działanie SPOJa