题目地址
#include<cstdio>
#include<iostream>
#include<string>
#include<vector>
#include<map>
#include<algorithm>
using namespace std;
map<string,string>mp;
map<string,bool>hush;
string s[50005];
vector<string> ve;
int main(void)
{
int n; cin>>n;
for(int i=0;i<n;i++)
{
string a,b; cin>>a>>b;
mp[a]=b,mp[b]=a;
}
int m; cin>>m;
for(int i=0;i<m;i++) cin>>s[i],hush[s[i]]=true;
for(int i=0;i<m;i++)
{
if(hush[mp[s[i]]]) continue;
ve.push_back(s[i]);
}
sort(ve.begin(),ve.end());
cout<<ve.size()<<endl;
for(int i=0;i<ve.size();i++)
{
cout<<ve[i];
if(i+1!=ve.size()) cout<<" ";
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
map<string,string>mp;
map<string,int>st;
vector<string>ans;
string s[50005];
int main(void)
{
int n; cin>>n;
while(n--)
{
string a,b; cin>>a>>b;
mp[a]=b,mp[b]=a;
}
cin>>n;
for(int i=0;i<n;i++) cin>>s[i],st[s[i]]++;
for(int i=0;i<n;i++) if(!st[mp[s[i]]]) ans.push_back(s[i]);
cout<<ans.size()<<endl;
sort(ans.begin(),ans.end());
for(int i=0;i<ans.size();i++)
{
if(i) cout<<" ";
cout<<ans[i];
}
return 0;
}