Fundamentals of Algorithmics