20 / 24
May 2015

Czy może mi ktoś wyjaśnić, dlaczego dla:

1
3 3

Out to:

1

Zaś dla:

1
18446744073709551615 18446744073709551615

(czyli także dwóch identycznych liczb) prawidłowy out to:

0

???

Wzór podany w zadaniu mówi, że zawsze jest to ilość boków mniejszych od b spełniających warunek zadania odjąc liczbę boków mniejszych od a spełniających warunek zadania dodać 1. Czyli jak na mnie w obu przypadkach mamy działania 0 + 1 a ich wyniki to 1.

Dzięki wam wielkie - podołałem jak na razie najtrudniejszemu po Ostrowskim zadaniu smiley

Jeszcze jedna prośba - czy moglibyście się podzielić kodem prawidłowego rozwiązania, np. wkleić go na stronę oeis.org/A003401/b003401.txt1 . Wydaje mi się, że programowanie nie polega na przekopiowaniu zawartości tego linku do tablicy i wysłaniu go na SPOJa, ale jeśli o to chodziło w tym zadaniu (a de facto to zrobiłem, choć mocno zminimalizowałem ilość przeklejonych wartości) to proszę o uświadomienie smile

Pociszające jest jednak to, że o ile w przypadku Maksymiliana musiałem posiłkować się inernetem i modyfikować inne kody aż uzyskałem sprawny program wiedząc jedynie (na podstawie zadania Noe), na czym będzie bazował algorytm o tyle teraz wszystko zrobiłem samodzielnie smile

-- So maja 16, 2015 9:47 pm --

Odpowiadam na pytanie:

Dla małych liczb mój program działał dobrze, bo rozumiejąc treść zadania spokojnie go napisałem smile
Dla dużych liczb mój program nie działał dobrze i w frustracji zapomniałem o co chodzi w zadaniu i - wreszcie - zapomniałem o jednej liczbie do sprawdzenia. W efekcie błędu szukałem wszędzie a nie tam gdzie powinienem. A przecież był on oczywisty - dla wejścia z przykładu widać jasno, że mój program musi co jakiś czas zwrócić zero wink

Więc może, wystarczyłoby dodać, jakiś mały generatorek pseudolosowy, który decydowałby co jakiś czas o zwróceniu zera? wink
Moje rozwiązanie faktycznie jest grubo poniżej 300 linijek kodu, ale napisałem je już grubo ponad rok temu, więc już nie pamiętam dokładnie jak. Dodatkowo jest tam sporo niepotrzebnych komentarzy do usunięcia. De facto nie są to nawet tak naprawdę komentarze, tylko zakomentowane linie programu, które [tylko tak się domyślam] służyły mi do testowania struktur STL, które chciałem użyć w programie. Wiem, wiem, powinienem je po prostu usunąć i tyle, ale...
Programowanie [na pewno w internecie jest opisana dokładna i ścisła definicja] opiera się także w dużej mierze na lenistwie. Jeżeli można i umie się coś wykonać z mniejszym wydatkiem energii i czasu to .. ja to stosuję w praktyce, ale jeszcze mi dużo brakuje. Robię dużo w kierunku polepszania i powiększania zdolności lenistwa, więc sam rozumiesz wink !?
Więc każde rozwiązanie AC jest na SPOJu ok, chociaż czasami zdarza się, że istnieją lepsze, szybsze i krótsze sposoby [także bardziej leniwe]. W programowaniu dla klienta i pod nadzorem pracodawcy, takie programowanie zostanie z czasem [może nawet szybko] zweryfikowane i poddane innym ocenom i innym kryterium.

Ciekawy pomysł z generatorem smiley Niemniej szczerze przyznam, że nieraz kusiło mnie napisanie programu, który będzie zwracał liczby pseudolosowe albo np. sortował dane przez ich potasowanie. Ciekawe, za którym razem takie sztuczki dałyby AC i z jakim czasem wink

Ok, przyjmuję to do wiadomości. Jeśli jednak ktoś będzie chętny udostępnić swój kod to będę wdzięczny. Pokazanie mi jak działa STL bardzo się przyda - w końcu próbuję się go z różnym rezultatem nauczyć a przykładów nigdy za wiele smile

Zaś co do programowania dla klienta i pod nadzorem pracodawcy, to raczej zostanie informatykiem mi nie grozi, choć kto wie - studia tracą na i tak całkiem małym znaczeniu w porównaniu z tym sprzed np. 30 lat więc może gdy będę szukał zatrudnienia to pracodawca nie będzie zainteresowany papierkiem, który posiadać będzie każdy, a moją wiedzą? Jeśli tak, to lepiej postaram się bardziej na SPOJu, choć wyniki w łatwych mam już myślę niezłe wink

Raz jeszcze dzięki za pomoc.