样例过了,交上去全wa
#include<bits/stdc++.h>
using namespace std;
string s,fa,so,Find;map<string,string> mp;
void getfa(string so){
if(!mp.count(so)){
cout<<so<<endl;
return;
}
getfa(mp[so]);
}
int main(){
getline(cin,s,'$');
for(int i=0;i<s.size();i++){
if(s[i]=='#'){
fa="";
for(int j=i+1;s[j]!='\n';fa+=s[j],j++,i=j);
}
else if(s[i]=='+'){
so="";
for(int j=i+1;s[j]!='\n';so+=s[j],j++,i=j);
mp.insert(make_pair(so,fa));
}
else if(s[i]=='?'){
Find="";
for(int j=i+1;s[j]!='\n';Find+=s[j],j++,i=j);
cout<<Find<<" ";
getfa(Find);
}
}
return 0;
}