Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<iostream>#include<cstring>#include<vector>#include<map>using namespace std;const int MAXN=100005;struct Node{int v;Node *next;}Tree[MAXN],Ques[MAXN*2],*Next[MAXN],*NextQ[MAXN];int Set[MAXN],Ans[MAXN];string Names[MAXN];map<string,int> Name2Num;void Insert(Node *tree,Node **next,int i,int u,int v){tree[i].v=v;tree[i].next=next[u];next[u]=tree+i;}int hash(string name){if(Name2Num.find(name)==Name2Num.end()){Name2Num[name]=Name2Num.size();Names[Name2Num.size()]=name;