Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <stdio.h>#include <string.h>#include <string>#include <map>using namespace std;int n,pa[100005],tol;map<string,int> f;int Find(int x){if(pa[x] == 0) return x;pa[x] = Find(pa[x]);return pa[x];}int main(){int op,x,y;string a,b;tol = 0;scanf("%d",&n);while(n--){scanf("%d",&op);cin>>a>>b;if(!f[a]) f[a] = (++tol);if(!f[b]) f[b] = (++tol);x = f[a];y = f[b];x = Find(x);y = Find(y);if(!op){if(x != y) pa[x] = y;}else{