A hybrid simulated annealing with solutions memory for curriculum-based course timetabling problem