introduction to algorithms notes 8317340