41 / 58
Jul 2019

in:
11
11
42
11
11
42
11
11
42

  • w zasadzie to chyba wa ale program się wykonuje i wykonuje i wychodzi tle.

Witam, udało mi się zrobić program, który po wprowadzeniu danych wejściowych poprawnie wyprowadza dane wyjściowe, jednak sędzia wyrzuca błąd “Przekroczono limit czasu”. Może ma ktoś pomysł jak skrócić czas działania mojego programu?
Mój kod: http://ideone.com/3BoEWy10

Patrz przykład powyżej i przeczytaj jeszcze raz treść zadania.

Faktycznie nie przechodziło tego testu. Niepotrzebnie w jednym momencie zerowałem zmienną x, dlatego program mógł wykonywać się w nieskończoność. Poprawiłem to, sprawdziłem, wydaje mi się, wszystkie przypadki (moim zdaniem wszystko działa tak jak powinno), jednak dalej wywala błąd “Przekroczono limit czasu”.
PS. W zadaniu dane wejściowe wyglądają tak [Po lewej], u mnie wyglądają tak [Po prawej]:
Wejście:
42 42
42 42
12 12
13 13
42 42
11 11
42 42
43 43
42 42
42
99
01
Nie wiem w jaki sposób autorowi zadania udało się dopisać kolejne trzy liczby, nie ustalając z góry ilości testów (w tym przypadku 12)
Podejrzewam, że program kończy się na 01, ponieważ nie jest to de facto liczba dwucyfrowa.
U mnie program kończy się na trzeciej “42” wpisanej po innej liczbie.
Mój leciutko poprawiony kod: http://ideone.com/IyJQ4D12

Poprawiłem program, ale nadal występuje przekroczenie czasu. Nie rozumiem też,czy te ‘42’ poprzedzone inną liczbą mają się powtórzyć w kolejności czy nie, bo wyżej dwie osoby pisały co innego.
link3

Gdy próbowałem zamienić cout na printf() i cin na scanf() wyskoczył mi błąd SIGXFSZ.

42 poprzedzone inną liczbą nie muszą być w kolejności, 42 może być poprzedzone wieloma innymi liczbami tj odstępy między nimi mogą być większe niż jedna liczba, czyli przykład:
11
11
42
11
11
42
11
11
42
11
12
powinien zakończyć się na trzeciej liczbie 42.

Co masz na myśli pisząc “mają się powtórzyć w kolejności”?
PS. Twój program nie przechodzi testu powyżej:
in:
11
11
42
11
11
42
11
11
42
Edit. Przeanalizowałem twój program i miałeś dokładnie taki sam błąd co ja, czyli wyzerowałeś daną “licznik” w jednym miejscu niepotrzebnie (lub dwóch, musisz sprawdzić) wystarczy to skasować.
Wklepałem poprawiony twój kod do spoja i sędzia go przyjął :smiley:

if ((n<10)||(n>99)) - warunek jest zbędny;
nie wiem co tu poprawić, jedynie uprościć, wystarczy zapamiętać poprzednio wczytywaną liczbę w jakiejś zmiennej tmp i dwa warunki.

Spróbowałem wklepać bez tego, wyskoczyło “Błąd kompilacji”. Ale też nie rozumiem dlaczego ma być zbędny skoro jest napisane w zadaniu, że liczby muszą być dwucyfrowe.

"Wejście
W każdej linii jedna liczba dwucyfrowa."
Czyli masz gwarancję że liczby na wejściu będą dwucyfrowe, nie musisz tego sprawdzać.

2 years later

Witam bardzo serdecznie niestety także mam problem z tym zadaniem w kompilatorze wszystko dobrze mi wychodzi a sędzia wyświetla mi błędna odpowiedź. Bardzo proszę o jakaś radę :smiley:
https://ideone.com/QfcZpu4

a gdzie ty widzisz dobrą odpowiedź dla przykładowego testu ??
twój kod dla przykładu a prawidłowa odpowiedź : (pogrubione daje twój kod)
42
42
12
13
42
11
42
43
42

2 months later

Witam, myślę już jakiś czas nad poprawnym rozwiązaniem, na jakie oczekuje sędzia, natomiast ciągle dostaję błąd o przekroczeniu limitu czasu mino, w mojej opinii, poprawnego działania programu.
Link do Ideone: https://ideone.com/arE2Qx4

przyklad obrazujacy co jest zle
wejscie
11
42
12
42
12
13
42
11
42
43
prawidlowe wyjscie
11
42
12
42
12
13
42