➤ Problem Link : FRNDCIRC
👉 Hint : edit please
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; unordered_map<string,string>par; unordered_map<string,int>size; string find(string i) { if(par.find(i)==par.end()) return i; return par[i]=find(par[i]); } int main() { int t; cin>>t; while(t--) { par.clear(); size.clear(); int n; string x,y; cin>>n; for(int i=1;i<=n;i++) { cin>>x>>y; string p1=find(x); string p2=find(y); if(p1==x && size.find(p1)==size.end()) size[p1]=1; if(p2==y && size.find(p2)==size.end()) size[p2]=1; if(p1!=p2) { par[p1]=p2; size[p2]+=size[p1]; } cout<<size[p2]<<endl; } } }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!