Nie przechodzi, pomimo że przykład z zadania przechodzi i własne testy też. Co jest nie tak?? Czego nie uwzględniłem??
Kod https://ideone.com/W4mpmD151
created
last reply
- 27
replies
- 2.9k
views
- 13
users
- 2
likes
- 6
links
Nie przechodzi, pomimo że przykład z zadania przechodzi i własne testy też. Co jest nie tak?? Czego nie uwzględniłem??
Kod https://ideone.com/W4mpmD151
Testowalem na ideone i wszystko cacy, ale jednak na spoju ma blad kompilacji. Ktos moze ma pomysl dlaczego ? link do ideone58
Dziwne, że kompilacji, a nie wykonania, ale jeżeli tą linijką:
i = lista.erase(i);
usuniesz ostatni element z listy, to i będzie skazywać na lista.end(). Jak teraz zrobisz i++ to błąd gotowy.
PS. Zrób porządek i dodaj klamry w każdym ifie i forze, żeby było widać co się tam dzieje w jakiej instrukcji, bo tak to trzeba się wczytywać i m.in. przez to są tego typu problemy.
Na ideone testowałeś, kompilując C++4.3, a na SPOJ'u C++5
Zobacz jak jest cacy na ideone c++5: http://ideone.com/RwDVl041
prog.cpp:14:95: error: 'EOF' was not declared in this scope
PS
Gdybyś kliknął w błąd kompilacji na SPOJ'u, też by CI to pewnie wyświetliło.
Z treści zadania:
"Zestawy składają się z liczby całkowitej, po której następuje spacja i ciąg liczb całkowitych rozdzielonych spacjami."
Czy możliwe jest by po pierwszej liczbie całkowitej wystąpił ciąg liczb, ktory nie zawiera zadnej liczby?
czyli:
in:
3 (pusto)
out:
-
Jeżeli odpowiedź na to pytanie jest przecząca to poproszę Was o sugestie (testy bądź krytykę ) dotyczące kodu:
kod usuniety
Dzięki z góry za pomoc.
Zadanko nie chce mi uparcie przejść do AC, a dyskusja i podpowiedzi w tym wątku powyżej nie pomogły mi rozwiązać problemu.
https://ideone.com/nG262936
Wczytuje GETLINEm wszystko do STRINGA a potem szukam spacji i minusow i tworzę z tego tablice liczb.
Zadanie jest w kategorii łatwe wiec nie podejrzewam żeby sędzia sprawdzał liczby nie mieszczące się w LONG LONG, ale nie mam pomysłu co jeszcze innego może być źle.
Zapominałem dopisać że w pierwszej wersji nie wiedziałem jeszcze jak program ma się zatrzymać i robiłem to ręcznie - po wpisaniu linii danych wciskałem CTRL+Z i jeszcze Enter.
Wtedy pierwsza wersja pokaże poprawny wynik. Zapomniałem o tym napisać
Jak pisałem tę pierwszą wersję jeszcze nie wiedziałem jak wprowadzić nieznaną ilość razy, nieznaną ilość danych, bo się uczę dopiero programować.
Potem podpatrzyłem jeden z linków w tej dyskusji i zrobiłem jak w nim, czyli wczytanie z Getline i rzutowanie na long long i dzięki temu w drugiej wersji jest już OK możesz wprowadzać dane i od razu po Enterze jest wynik, mam prośbę więc o zerknięcie i wychwycenie błędu w drugiej wersji.
Pierwsza wersję dla porządku usuwam.
Jeśli to było dla Ciebie widoczne od razu to gratuluję wprawy, ja musiałem się chwilę pozastanawiać że chodzi o liczenie ujemnych z pozycji minusów.
Nawet mogę napisać że wiem czemu tu popełniłem błąd. Uparłem się żeby skończyć zadanko za jednym posiedzeniem późno wieczorem jak już byłem zmęczony i na sam koniec się zorientowałem że zapomniałem zrobić algorytmu do liczenia ujemnych i na szybko go dopisałem, ale program nie zadziałał nadal.
Następnego dnia już zapomniałem że te minusy pisałem na szybko i nie sprawdzałem już dokładnie ich liczenia i kłopoty gotowe. Przestroga żeby nie programować na siłę jak się jest już zmęczonym.
Dzięki za pomoc.
bo (nawet dobre) uwzględnienie liczb ujemnych nie mogło mieć znaczenia - w danych testowych tego zadania nie ma ani jednego minusa
zaś złe dodało dodatkowy błąd
zaś generalnie musisz popracować nad optymalizacją kodu - znaczna część kodu w tym zadaniu jest niepotrzebna a większość tego co by zostało można znacznie poprawić