Knowledgeable C++ assignment solver