notes on algorithmic design 4489465