Optimal binary search tree