For project of COMP6783 Applied Algorithm