Nie miałeś tłumaczyć, ale przemyśleć i przestać stosować.
Powtórzę
Zamiast:
if(p)
while(p)
wystarczy aż nadto
samo
while(p)
.
.
Warto jeszcze, żeby jedna z tych ogarniających osób [dużo mniej niż 305], nauczyła się prawidłowo czytać i interpretować dane - wystarczy tylko przeczytać uważnie nagłówki rubryk no i niestety trochę pomyśleć.
to zadanie jest łatwe, pomijając fakt, że jego nazwa kieruje znaczna część rozwiązujących w złą stronę
to że zadziwiająco mało osób rozwiązało to zadanie, to raczej spowodowane jest tym, że już wtedy spoj miał znacznie mniejszą popularność niż na początku działalności - ale i tak zadanie ma znacznie więcej rozwiązań, niż inne średnie zadania z tego okresu
Jest średnie . Tzn jest w kategorii zadań o średniej trudności.
W czasie umieszczania zadania na SPOJu, nie było jeszcze statystyk i autor i @admini musieli "oprzeć" się na swoim doświadczeniu i praktyce. I jest tak za każdym razem, przy wprowadzaniu każdego nowego zadania na SPOJ'a. Można ewentualnie potem bawić się w przenoszenie zadań z jednej do drugiej kategorii ale ani ja nie jestem zwolennikiem takich zabaw, ani sama ilość ozób z AC nie jest miernikiem trudności [łatwości] zadania.
PS
Dla zadań z algoligi, w czasie ich wprowadzania na SPOJa, pewnym przybliżeniem są statystyki na algolidze, skąd pochodzi zadanie, ale tylko przybliżeniem.
PS 2
Dla osoby/osób, które rozwiązały to zadanie, jest ono proste i łatwe, Jednak dla ciągle zmagających się z nim nie.
PS 3
To, że w ogóle poruszyłem problem ilości osób, które rozwiązały zadanie, wynikło tylko z chęci zwrócenia uwagi na ewidentny błąd przedmówcy w interpretacji statystyk
Wskazówki!
- To nie pierwszy twój post na forum z pytaniem czy podpowiedzią więc powinieneś już chyba wiedzieć jak wklejać kod?
- Podpowiadając, warto samemu sprawdzić, bo możemy niechcący napisać głupotę.
- Tu tablicy używasz do wczytania więc nie trzeba jej wcześniej zerować.
- konstrukcja tab[101] = {0} jest [to moje przypuszczenie] równoważna np pętli:
while(i--) tab[i] = 0;
AD 2
spacje na cout robimy poprzez: cout << ' ' ; lub cout << " ";
AD 4
Więc albo zrezygnuj z zerowania [={0}], albo deklaruj poza pętlą.
PS
Zrobiłbym trochę inaczej. Zrezygnował z kopiowania, a zostawił tylko wstawianie zera. Dodatkowa zmienna na pamiętanie ostatniego-poprzedniego zwierzaka.
Ad 1.
Nie rozumiem o co chodzi, przecież kod jest ładnie wklejony za pomocą ctrl+shift+c
Ad 4.
konstrukcja tab[101]={0} nie jest wcale równoważne pętli, gdyż np. zapis
tab[101] = {4} ustawi pierwszy element tablicy na wartość 4 natomiast pozostałe elementy przyjmą wartość 0.
Dlatego tylko i wyłącznie do zerowania tablicy używam zapisu = {0}.
(Możesz to łatwo sprawdzić)
To była próba podpowiedzi, a nie prośba o [wy]tłumaczenie. Zdaje mi się, że to ty masz z tym zadaniem problem, a nie ja, ale może mi się tylko tak wydaje.
Napisałem coś o konstrukcji tab[] = {0}, a nie o tab[] = {4}, bo wiem dokładnie jak to działa, a także jak działa tab[101] = {0, 1, 2, 3, 5, 7, 11}, czy tab[101] = {} itd itd.
Czytałeś moją podpowiedź nieuważnie, albo ze złym nastawieniem [bo nadal nie masz AC] więc może jeszcze raz wróć do niej?
PS
Cóż, nie mam takich możliwości, aby sprawdzać za każdym razem, czego tylko używasz, ale nawet gdybym miał, nie miałbym ani ochoty ani czasu tego robić