感觉没有任何问题,样例都通过不了,求助
#include<bits/stdc++.h>
using namespace std;
map<string,pair<string,int>>m;
string s,t,f;
string _find(string s1){
if(m[s1].first!=s1) m[s1].first=_find(m[s1].first);
return m[s1].first;
}
void merge(string s1,string s2){
string rs1=_find(s1),rs2=_find(s2);
if(rs1!=rs2) m[rs2].first=rs1;
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
while(cin>>s&&s!="$"){
t=s.substr(1,s.size()-1);
switch(s[0]){
case '#':
f=t;
m[t].first=t;
break;
case '+':
m[t].first=t;
merge(f,t);
break;
case '?':
cout << t << ' ' << _find(t)<< endl;
}
}
return 0;
}