Polynomial and pseudo-polynomial time algorithms for different classes of the Distance Critical Node Problem