Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<string>#include<map>using namespace std;const int MAX = 100;struct Person{string name;Person * father;int flag;Person(char* s) :name(s), father(NULL), flag(0){}void insertFather(Person* aFather) {father = aFather;}void markFlag(int val) {flag = val;}};void buildTree();Person* createLink(char *name);void searchTree();void markFathers(Person*, int);Person* findCommonFather(Person*);typedef map<string, Person*> Persons;Persons allPersons;int main() {buildTree();int n;scanf("%d", &n);