I submitted this solution to Problem A of Round #663. I know the problem was really easy and even my logic was correct. What actually caused problems was including the following two line in my void solve()
function.
ios_base::sync_with_stdio(false);
cin.tie(NULL);
I added the two lines for fast input/output through cin/cout but mistakenly added them to void solve()
. However, after removing these two lines the code worked fine and got accepted.
Link to first solution.
Link to second solution.
Can someone please explain what exactly went wrong and why?
Thanks in advance!!
UPD: Not here for contributions. Plz just answer it if you know the answer.
I moved the 2 lines in the beginning of main(), and it got accepted. Putting those 2 lines inside main() like this guarantees that they run only once. You put those inside your solve() function, which will be run multiple times.
IIRC, it resets something but I can't remember (is it rdbuf?). Idk, I'm just gonna wait here until someone comes with a more detailed answer.
Everything went wrong when you copied that template
Also, why don't you check out all my previous submissions if you think the template has been copied?
and why she should do that?
????? because shes the one accusing him of something
Your code calls
ios_base::sync_with_stdio(false)
after I/O (input/output) (e.g. cin/cout) has been used. This results in implementation-defined behavior, which in this case results in undefined behavior as I/O stops working.Your code should call
ios_base::sync_with_stdio(false)
before any I/O occurs. So it should be at the beginning of themain()
function.