Importance of using "\n" instead of endl

Check out these two submissions for the same question.
Solution 1
[0.91s]

Solution 2
[0.23s]

These two submissions are almost identical yet there is a huge difference in time taken. That’s because I have used endl in solution 1 and “\n” in solution 2 to print newline.

When we have to print large output as in this problem, it is better to use “\n” instead of endl. Just wanted to point this out for newbie’s.

1 Like

In last months Long Challenge, the problem ENGXOR also had the same problem. It also gave a TLE to the users who were using an endl instead of \n

1 Like

Well Input/output operations take much more time than other operation we include in our code.
‘endl’ is not just about adding a newline…it also flushes the buffer, which is a very expensive task and it consumes time. While “\n” just means adding a newline.

That’s is why a solution with endl takes more time than a solution with “\n” due to flushing the buffer repeatedly every time it appears. Generally, i will suggest not to use ‘endl’ because as soon as buffer gets full it is flushed automatically. if in some cases you need to flush the output insert ‘std::flush’ into the stream.

3 Likes