중복되지 않은 입력이 들어온다는 점에서 1개의 map을 활용하면 된다.
map으로 횟수를 세어주었을 때 2개가 된다면 듣도 보도 못한 사람이라는 것이다.
#include <iostream>
#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
unordered_map<string, int> people;
vector<string> ret;
int N, M;
cin >> N >> M;
N += M;
while (N--)
{
string name;
cin >> name;
++people[name];
if (people[name] == 2)
ret.push_back(name);
}
sort(ret.begin(), ret.end());
cout << ret.size() << "\n";
for (string name : ret)
cout << name << "\n";
return 0;
}
출력하기 전의 정렬해 주고 출력하면 된다.