algorithms runtime hardness and problems 2944423