1 / 21
Sep 2015

http://pl.spoj.com/problems/AL_07_01/68
http://ideone.com/uB0V5o104
Napisałem takie program do tego zadania jednak dostaję TLE od sędziego. Może ma ktoś jakieś wymagające testy i chętnie by się z nimi podzielił? Zastanawiam się czy nie spowalnia mojego programu funkcje erase() ale nawet jesli to bazuje na stringu o max długości 4 znaków i jakoś nie chce mi sie wierzyć że TLE jest przez to spowodowany. Drugą opcją jest zapętlenie się w while'u ale to będę mógł wyłapać testami.

  • created

    Sep '15
  • last reply

    Apr '24
  • 20

    replies

  • 2.7k

    views

  • 12

    users

  • 2

    likes

  • 9

    links

Od sędziego TLE, a ja w skali od zera do 10 daję Ci 1 pkt. Dlaczego 1 - bo widać, że działa, ale tak skomplikowałeś rozwiązanie - kod, że nawet nie podejmuję się analizowania go. 1 tak na zachętę. Wydaje mi się, że najpierw powinieneś długo [po]myśleć jak to rozwiązać, a dopiero potem zacżąć kodować. Jeżeli zrobiłeś odwrotnie, to są takie skutki. Pomyśl jak to zrobić prościej, dużo prościej i jak już będziesz miał nowy pomysł wtedy napisz kod na nowo. Czym wcześniej i szybciej zapomnisz o tym kodzie powyżej tym dla Ciebie będzie lepiej, tak mi się wydaje. Przestań więc zastanawiać się nad while(..)

1 month later

Doradziłbym Ci dokładne przeczytanie zadania, ale jak:

to sam nie wiem, czy jakakolwiek rada tu pomoże?

Czekałem, czekałem i w końcu straciłem cierpliwość.
1. Przy załączaniu linku do ideone.com - warto skorzystać z możliwości testowania na ideonie - należy wkleić tam test z zadania [tylko wejście - stdin] i dopiero wtedy kliknąć run. I taki link wkleić: http://ideone.com/JaTIFD37
2. Po co Ci tablica wynik[], gdzy w pętli wykorzystujesz ją jak zwykłą zmienną? [to oczywiście nie spowoduje AC]
3. Treść zadanie można "przelecieć" i błyskawicznie rozwiązać i otrzymać AC. Gdy jednak tak się nie stanie i mamy błędny wynik lub przekroczenie czasu, to warto zacząć od powtórnego dokładnego przeczytania zadania, i samodzielnie "powalczyć" a dopiero potem szukać pomocy na forum.
4. Dokładne czytanie dotyczy też czytania między wierszami, metryki zadania - pochodzenie oraz bardzo ważna może być też czasami nazwa zadania - czemu tak a nie inaczej - co autor chciał powiedzieć czy raczej podpowiedzieć.

Teraz to już się domyśliłem jak napisać program smile
Rozwiązanie jest prostsze niż się wydaje.
Tylko cała esencja jaka była w napisaniu programu który "ma ręcę i nogi" prysła ze względu na to że rozwiązanie jest zupełnie inne....
Czuję się trochę oszukany pisząc przez długi czas program który działa i wyprowadza poprawny wynik a mimo to spoj mi go nie uznaje.
Pisząc jeden program napisałbym 3 inne sprawiające mniej problemów i większą frajdę ^^

tak czy inaczej dzięki za podpowiedź,

6 months later

Czy ktoś mógłby podesłać jakieś podchwytliwe testy do tego zadania? Mój program przechodzi wszystkie testy podane w zadaniu, jednak otrzymuje WA.

To, że twój program przechodzi wszystkie testy podane w zadaniu to mały pikuś i nic dziwnego. To są najprostsze z najprostszych możliwych testów i nie są tam po to, aby na nich testować swoje kody [programy], tylko po to, aby czytający łatwiej sobie wyobraził o co chodzi w danym zadaniu. Więc jak chcesz zrobić to zadanie, [więc dlatego nie możesz go zrobić] jak nie możesz sobie wyobrazić trudniejszych testów [ w zadaniu podano ograniczenia]

np takie:
2...
1000000000 * 1000000000 = ?
1000000000 * 99999999 = ?
1000000001 +1000000001 +1000000001+1000000001+1000000001+1000000001+1000000001 =
1000000001 -1000000001 -1000000001-1000000001-1000000001-1000000001-1000000001 =
...
zamiast +1000000001 w ostateczności możesz wstawić 99999999 czy coś podobnego

tak, standardowa, czyli od lewej do prawej, mnożenie ma wyższy priorytet niż dodawanie/odejmowanie,

7 months later

Cześć,

Twoje zadanie nie przechodzi dla testu:

1
1 + 0 * 4 =

Poprawna odpowiedź to: NIE

Dzięki za odpowiedź. Mój błąd polegał na tym iż założyłem że program ma liczyć zawsze od lewej. Teraz wiem że musi wykonać pierwsze mnożenie... Poprawiłem mój kod (sorry za czytelność kodu), ale dalej nie dostaje AC. Proszę o kolejne sugestie. http://ideone.com/shccfj44

2 years later

Dzięki za podpowiedź. Już zaliczone.

PS Napisałem wszystko od nowa z urzyciem stosu.

1 year later

Cześć, może ktoś podpowie. Nie mogę wyłapać co nie tak. Program działa, ale nie uznaje (za długi czas).
Co spowalnia program?

Trochę ulepszyłam ale nadal wydaje TLE

Z polską anotacją wychodzi dłużej,
pomogłą optymizacja cin:
ios_base::sync_with_stdio(false);

8 months later

Cześć. Ma ktoś może jakiś test, którego mój kod nie przechodzi?

Tu był kod.

Z góry dziękuję.
Ok, dałem radę.