没感觉出任何问题,但样例都过不了,求助
#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!="$"){
switch(s[0]){
case '#':
f=t;
t=s.substr(1,s.size());
m[t].first=t;
break;
case '+':
t=s.substr(1,s.size());
m[t].first=t;
merge(f, t);
break;
case '?':
t=s.substr(1,s.size());
cout << t << ' ' << _find(t) << endl;
}
}
return 0;
}