按照思路的话,应该将校友,宾客,以及二者共同点分成三组;利用迭代器遍历hash表
substr
的用法都忘了,太惨了,还有迭代器。。。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
int N=1e6+7;
unordered_map<string,int>mp,ff,come;
int n,m;
int cnt;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
string s;
cin>>s;
mp[s]=i;
}
cin>>m;
for(int i=1;i<=m;i++){
string s;
cin>>s;
ff[s]=i;
if(mp[s]!=0){
cnt++;
come[s]=mp[s];
}
}
if(cnt){
cout<<cnt<<endl;
string max="999999999999999999";
for(auto &item : come){
string res=item.first;
//cout<<res<<" "<<res.substr(6,8)<<endl;
if(max.substr(6,8)>=res.substr(6,8)){
max=res;
}
}
cout<<max<<endl;
}
else {
puts("0");
string max="999999999999999999";
for(auto &item : ff){
string res=item.first;
//cout<<res<<" "<<res.substr(6,8)<<endl;
if(max.substr(6,8)>=res.substr(6,8)){
max=res;
}
}
cout<<max<<endl;
}
return 0;
}