Oh thanks! I have updated the link.
Again it’s the same error as @tush_chen and @sudheerays123.
The lines from 64-74 have complexity \mathcal{O}(c n) where c is the number of connected components this is because you set the entirety of the visited array to false for each component.
Oh argh. Thanks for the help!
results are out
Congrats to you and everyone else who qualified!

Congratulations to all who got selected and to all who didn’t as they atleast reached INOI(including myself).
Yup, congrats everyone! Honestly INOI is big enough for small coders like me 
(For the whole of this post, I have assumed that the removed corner in the case of dp2 is in the upper right corner , i.e. it is in the first of the 3 rows and nth of the n columns)
I have a question.
While making the recurrence relation for dp2,
First you put 2 3x1 blocks below the removed corner and then put a 3x1 block above those two and to the left of the removed corner to get dp2[i-3]. I understood that part.
For the second case, you put a 2x2 block below the removed corner and then got dp3[i-1]. Is there a specific reason why you didn’t put a 3x1 block above that 2x2 block and to the left of the removed corner ( as that is the only block that can go there) to form a different dp3?
I am finding it hard to implement dp3 that way. Has someone else done it that way?
Also how do you go about finding the base cases for such a problem?
I hope you get what I am trying to say.