mv kmp.cpp to kmp.c, add disjoint_set.c