I was learning about interactive problems, and I solved a few problems such as:
I also read this blog:
Interactive Problems: Guide for Participants
I learned that you have to use either endl or cout.flush() after "\n".
However, I tried not using cout.flush() at all and just used "\n" or endl.
Now, endl works because it includes the flush operation, but why is "\n" working without cout.flush()?
Are interactive problems only interactive during live contests?
Can someone please try solving the above two problems with "\n" and no cout.flush() and explain this behavior to me?
Here are my solutions with "\n" only:
Maybe, MikeMirzayanov can answer
cin
is usually by default tied tocout
(check this comment). This means that prior to callingcin
, the program ensures that all the output fromcout
was flushed. So (at least in C++) you only really need to callcout.flush()
if you wrotecin.tie(0)
in the beginning of your code. I assume all the flushing disclaimers are there to ensure that people coding in other languages (or C++ users who just copy-pastecin.tie(0)
without knowing what it does) flush the output and don't getWA
for no reason.