Czesto mamy w zadaniach mocny spam nowych linii. Bufor stdout o ile sie orientuję działa troche tak, że jak mamy nowa linię to zachowuje się trochę jak fflush( stdout );
Przykład z życia wzięty.
Ostatnio zmagałem się z zadaniem wiosno. Po orzymaniu przekroczenia limitu czasu pomyślałem o innym sposobie rozwiązania zadania. uzyskałem 0.03.
Myślę sobie no fajnie ale jakbym miał 0.2 to bym miał 2 strone najlepszych chociaż.
Jestem leniwy więc postanowiłem sprawdzić pewną rzecz o której już jakiś czas myślałem ale jakoś nigdy nie zrealizowałem.
na początku mojego programu umieściłem te dwie linijki.
char buff[8192];
setvbuf( stdout, buff, _IOFBF, sizeof(buff) );
Ta da. 0.02 wyciągnięte. Może miałem farta bo w sumie nie testowałem to z innymi zadaniami ale pewnie za jakiś czas sprawdze kilka.
Sprawdziłem z 5 zadań. Wszystkie czasy mi te linijki zmniejszyły. pare razy udało mi się dzięki temu zgarnąc 1 stronę.
created
last reply
- 3
replies
- 1.3k
views
- 3
users
- 2
likes