solution to HDOJ