pseudo-polynomial times