Hello, Codeforces. I know you all have been there: coding a solution that gives a wrong answer and then being many minutes, or even hours, trying to find the bug in the code, becoming frustrated because you feel you are wasting time you could be using solving other problems. Have you any tips or a strategy for successfully debugging incorrect solutions?
write a brute force solution which gives correct answer and test your current solution by generation random numbers using generator and find the test case where your solution result in wrong answer
I'm still a specialist and my level isn't that high.
But I'm a software engineer. So my strategy is engineer-like.
1 . Write readable code, which makes logic clear and easier to debug
2 . Print debugging -> cpp-dump
Understand what each section is doing. Then Just check line by line. Think about whether it's reasonable carefully. Pay special attention to the interaction between operations.
In addition, you can write down error-prone things before you write code.
You can read um_nik's blog. I think it's meticulous and useful.
Cout line by line is fast for me