Važno pitanje u vezi C++ i vremenskih ograničenja

U jednom od rešenja zadataka za osmi razred, za državni nivo takmičenja, učio sam deo koda:

ios_base::sync_with_stdio(false);

Pročitao sam negde da umanjuje znatno vreme za Grader, tako da se smanjuje rizik od prekoračenja vremenskog oraničenja, ali nisam baš siguran u to.
Ako je ta tvrdnja tačna, da to znači da je moguće koristiti cout, cin, std::string i sve ostale STD funkcije bez straha od prekoračenja? (Do sada sam koristio printf i scanf).
Ako ne, šta ovaj deo koda zapravo radi?

Hvala unapred!

To nije bas najtacnije,ali printf i scanf rade sa vecom preciznoscu iako su malo sporije.

Meni negde ne radi ni sa jednim ni sa drugim.Nije stvar u komandama za unos i izlaz,nego u efikasnosti :
-sto manje redova
-bez nepotrebnih dodataka

1 Like

Tacno je da znatno smanjuje brzinu izvrsenja ali bih ti ipak preporucio da koristis printf i scanf.

Kada sam testirao neke zadatke na BubbleBee-u brzina sa printf i scanf je bila i po 3 puta manja nego sa cin i cout.

Ocigledno da nisi stigao do zadataka sa velikim ulazom i izlazom, tipa n >= 10^6. Ogromna je razlika u brzini tako da nikako ne smes to da zanemaris, neki put te moze izvuci ako ti kod nije toliko efikasan, a negde mozda neces moci da ispunis ogranicenja samo sa cin,cout.

Broj redova nema nikakve veze sa brzinom izvrsenja, neki put moras da napises veci kod da bi program bio efikasniji, npr Eratostenovo sito

1 Like

Evo dva odgovora na ovo pitanje, doduse na engleskom, pa ako ti treba prevod viči :slight_smile:
https://www.quora.com/What-is-use-of-the-statement-ios_base-sync_with_stdio-false-cin-tie-NULL-cout-tie-NULL-What-does-it-do

1 Like