Table of algorithm in C++ binary search bitmask computational geometry dynamic programming graph number theory prefix sum segment tree sliding window sort string aho corasick cpp string process kmp suffix array trie tree union find