hill climbing algorithm code