Testing solutions for correctness

Dear Community,

Since the past few months, I have been struggling with submitting correct solutions to problems. Most of the times I am able to devise an algorithm, write code and also pass the sample cases provided. Also i design edge cases as much as possible and try to pass them. Unfortunately, it has become a pattern where I fail some test case that I can’t find.

Can you please help with how you test solutions? Some of the questions I have no idea why they failed -

CHEFPTNT

MULTHREE

Thanks a lot,

Ruddra

For CHEFPTNT, your use of FILEIOS is destroying the input stream.
Comment out the reference to FILEIOS, and your solution is correct.

https://www.codechef.com/viewsolution/17468122

But your question also asks how does one find such problems.
I ran your code on various test cases on my machine, and all your answers agreed with my code.

After various experiments, I added a line


          if (strlen(s) != k) exit(1);

in CodeChef: Practical coding for everyone and it became clear you were not reading the input data correctly.

1 Like

For MULTHREE, you have two versions of the code - one for small K and one for larger K.
The small K code should still be correct if you execute it with K=8. If you construct some test cases with K=8 and compare output from small K code and large K code, you should find your mistake.

1 Like

Wow John, thanks a lot for your time in working through my solution and giving me valuable insight. It is very helpful. I will keep this in mind going forward.