Latest posts
Potwierdzam wszystkie testy
Jedno podzadanie może być rozbite na kilka paczek testów, a tobie wchodzą tylko niektóre paczki do tego podzadania.
Potwierdzam.
Potwierdzam.
Na uruchomieniu próbnym dla 10 razy mniejszego wejścia (limit rozmiaru pliku wejściowego :( ) wychodzi mi 0.01s (samo wczytanie i wypisanie tego samego). Czyli dla miliona byłoby gdzieś 0.10. Nawet gdyby to jeszcze 10 razy pomnożyć, to nadal nie przekracza limitu. Próbowałeś już zapytać organizatorów? Albo może coś przeoczyłeś???
Próbowałem sprawdzić prędkość działania rozwiązania za pomocą sio2jail, jednak wynik bardzo różni się od sytuacji na sio2.
W tym przypadku jest to rozwiązanie do zadania Walki Robotów (wal). Lokalnie przez sio2jail, rozwiązanie jest uzyskane w 1ms. Na sio2 przekracza limit 4 sekund.
Spodziewałem się pewnej niedokładności, ale nie 4000x?
Korzystam z mobilnej platformy AMD (procesor AMD Ryzen 7 6800HS).
W tym przypadku jest to rozwiązanie do zadania Walki Robotów (wal). Lokalnie przez sio2jail, rozwiązanie jest uzyskane w 1ms. Na sio2 przekracza limit 4 sekund.
Spodziewałem się pewnej niedokładności, ale nie 4000x?
Korzystam z mobilnej platformy AMD (procesor AMD Ryzen 7 6800HS).
Próbowałem już to zrobić i problem jest w tym, że na moim komputerze program działa (nie przekracza 0.5 sekundy kiedy limitem są 3), ale kiedy wysyłam zadanie do sprawdzenia to dostaje przekroczenie czasu.
Po wysłaniu program nawet nie ma czasu nic obliczyć, ponieważ otrzymanie danych przekracza 3 sekundy kiedy używam zwykłego "input()".
Po wysłaniu program nawet nie ma czasu nic obliczyć, ponieważ otrzymanie danych przekracza 3 sekundy kiedy używam zwykłego "input()".
Cześć, wie ktoś dlaczego system ocenia mi rozwiązanie na 53, skoro żadna kombinacja podzadań nie może dawać tyle pkt? Raczej nie chodzi o przekroczenie limitu czasowego
Dziwne, Python akurat powinien obsługiwać wejście i wyjście dość szybko (słyszałam, że w niektórych przypadkach nawet szybciej niż C++).
Spróbuj napisać takie coś w Pythonie:
import timeit
print(timeit.timeit('''a = input()
print(a)''', number=1))
zapisać np. jako program.py,
stworzyć sobie plik wejscie.in, wkleić w niego 1 000 000 (milion) znaków (np. "9", "a", cokolwiek),
odpalić konsolę,
wejść w niej do odpowiedniego katalogu (tego, w którym zapisałeś program i plik wejscie.in) używając polecenia cd – mam nadzieję, że wiesz, o co chodzi,
i wpisać takie polecenie (dotyczy Linuxa, nie wiem jak to się robi pod Windowsem):
cat wejscie.in | python3 program.py
Na końcu będziesz miał wypisany czas (w sekundach), w jakim wykonał się program. Oczywiście w SIO2 może wyjść trochę dłużej, ale raczej nie rzędu 10 razy, poza tym w tym zadaniu nie ma wypisywania aż takiej ilości znaków NA WYJŚCIE. U mnie wychodzi średnio nieco poniżej 0,25s.
Możesz sobie zamienić też program w tym potrójnym cudzysłowie na swój własny (w przypadku, gdy nie rozumiesz, co robi ten cudzysłów: to jest zwykły string jak przy pojedynczym, ale nie musisz pisać '\n', żeby wstawić w nim nową linię, tylko możesz zwyczajnie dać entera).
Jeśli próbowałeś już coś podobnego, to przepraszam za zawracanie głowy :)
Spróbuj napisać takie coś w Pythonie:
import timeit
print(timeit.timeit('''a = input()
print(a)''', number=1))
zapisać np. jako program.py,
stworzyć sobie plik wejscie.in, wkleić w niego 1 000 000 (milion) znaków (np. "9", "a", cokolwiek),
odpalić konsolę,
wejść w niej do odpowiedniego katalogu (tego, w którym zapisałeś program i plik wejscie.in) używając polecenia cd – mam nadzieję, że wiesz, o co chodzi,
i wpisać takie polecenie (dotyczy Linuxa, nie wiem jak to się robi pod Windowsem):
cat wejscie.in | python3 program.py
Na końcu będziesz miał wypisany czas (w sekundach), w jakim wykonał się program. Oczywiście w SIO2 może wyjść trochę dłużej, ale raczej nie rzędu 10 razy, poza tym w tym zadaniu nie ma wypisywania aż takiej ilości znaków NA WYJŚCIE. U mnie wychodzi średnio nieco poniżej 0,25s.
Możesz sobie zamienić też program w tym potrójnym cudzysłowie na swój własny (w przypadku, gdy nie rozumiesz, co robi ten cudzysłów: to jest zwykły string jak przy pojedynczym, ale nie musisz pisać '\n', żeby wstawić w nim nową linię, tylko możesz zwyczajnie dać entera).
Jeśli próbowałeś już coś podobnego, to przepraszam za zawracanie głowy :)
Kilka podobnych testów: https://drive.google.com/file/d/1WQaem0clHyVkcO0C7m43mIQ1WeZHXRHA/view?usp=sharing
potwierdzam wszystkie testy
Potwierdzam, dobra testerka
Chyba nie można rozmawiać o trudności zadań
Potwierdzam testy, pomogły znaleźć błąd