Problem 18: Maximum path sum I