znajdowanie w ciagu

znajdowanie w ciagu
łokmenik pospolity
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

Cześć, robię sobie zadanie i coś mi ciągle wywala błąd "przekroczono limit czasu" jak u siebie odpalam to nawet to działa. Ktoś powie czemu algorytm tak zamula? Z góry dzięki.

Kopiuj
#include <iostream>
using namespace std;
int main() {
    int pierwsza, kolejna, min, max;
    int pozycjamax = 1;
    int pozycjamin = 1;
    int licznik = 1;
    cin >> pierwsza;
    max = pierwsza;
    min = pierwsza;
    do {
        cin >> kolejna;
        if (kolejna != 0) {
            if (kolejna > -501) {
                if (kolejna < 501) {
                    licznik++;
                    if (kolejna < min) { pozycjamin = licznik; min = kolejna;
                    }
                    if (kolejna >= max) { pozycjamax = licznik; max = kolejna; }
                }
            }
        }
    } while (kolejna != 0);
    cout << min << endl;
    cout << pozycjamin << endl;
    cout << max << endl;
    cout << pozycjamax << endl;
    return 0;
}
edytowany 1x, ostatnio: łokmenik pospolity
kq
Moderator C/C++
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Lokalizacja:Szczecin
0

Na pewno problemem jest czas wykonania, a nie błędne wyniki?

Być może zadanie mocno zależy od samych operacji I/O, umieść poniższe wywołania na samym początku funkcji main():

Kopiuj
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:25 minut
2

Przecież w treści zadania nie ma napisane, że 0 kończy dane wejściowe.
To jest powód dla, którego twoja pętla działa w nieskończoność
Nawet przykład w treści nie zawiera zera.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
kq
phew, zobaczyłem to zero i pomyślałem tylko o przedwczesnym zakończeniu
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:3 dni
  • Postów:1027
2

Ale tam nigdzie nie jest powiedziane, że wejście jest zakończone liczbą 0.

łokmenik pospolity
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

@MarekR22: O cholera! Tego się nie spodziewałem. Dzięki, dzisiaj moje zwoje mózgowe są wyjątkowo proste, jak widać mam nawet problemy z czytaniem ze zrozumieniem.

MarekR22
Zawsze wklejaj przykład z treści do wejścia swojego kodu, a takie wpadki wyłapiesz.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.